Accessing data from Sage X3 from a shipping program using ODBC

SOLVED

Hello,

I have Fedex Ship Manager software and I am  trying to integrate it with our Sage X3 software using ODBC and SQL. I am only able to see sys tables when trying to link. I even set up a new user in SQL manager with full rights. The Fedex software is in administrator mode so there shouldn't be anything blocking access but am I missing something?

Thank you,

Jeff

Parents
  • +1
    verified answer

    Jeff,

    We are using Sage X3 v11 and SQL.  While it isn't the best solution we are using the SA user for the odbc connection.  I believe the issue you are seeing is that FedEx can only see views (not tables directly).  I am new to this forum so I put the code we used for our view below (please note we put some static information in ours)

    SELECT        PROD.SORDER.BPCNAM_0 AS CUSTOMER_NAME, PROD.SORDERQ.ITMREF_0 AS PART_CODE, PROD.ITMMASTER.ITMDES1_0 AS PART_DESC, MONTH(PROD.SORDER.ORDDAT_0) AS PERIOD, 
                             YEAR(PROD.SORDER.ORDDAT_0) AS AMERILAB_YEAR, PROD.SORDER.CUSORDREF_0 AS CUSTOMER_REFERENCE, PROD.SORDER.SOHNUM_0 AS ORDER_NUMBER, 
                             PROD.SORDERQ.SOQSEQ_0 / 1000 AS ORDER_LINE_NUMBER, PROD.SORDERQ.DEMDLVDAT_0 AS REQUIRED_DATE, PROD.SORDER.ORDDAT_0 AS ORDER_DATE, PROD.SORDERQ.QTY_0 AS ORDER_QUANTITY, 
                             CASE WHEN SUM(PROD.STOCK.QTYSTU_0) IS NULL THEN 0 ELSE SUM(PROD.STOCK.QTYSTU_0) END AS QTY_AVAILABLE, PROD.SORDERQ.QTYSTU_0 - (PROD.SORDERQ.ODLQTYSTU_0 + PROD.SORDERQ.DLVQTYSTU_0) 
                             AS ORDER_QUANTITY_OUTSTANDING, PROD.SORDER.SHIDAT_0 AS SHIP_BY_DATE, COALESCE (CASE WHEN PROD.SORDER.DLVSTA_0 = 1 THEN 'Not delivered' ELSE NULL END, 
                             CASE WHEN PROD.SORDER.DLVSTA_0 = 2 THEN 'Partially delivered' ELSE NULL END, CASE WHEN PROD.SORDER.DLVSTA_0 = 3 THEN 'Delivered' ELSE NULL END) AS DILEVERY_STATUS
    FROM            PROD.SORDER INNER JOIN
                             PROD.SORDERQ ON PROD.SORDER.SOHNUM_0 = PROD.SORDERQ.SOHNUM_0 INNER JOIN
                             PROD.ITMMASTER ON PROD.SORDERQ.ITMREF_0 = PROD.ITMMASTER.ITMREF_0 LEFT OUTER JOIN
                             PROD.STOCK ON PROD.ITMMASTER.ITMREF_0 = PROD.STOCK.ITMREF_0 AND PROD.STOCK.STA_0 = 'A'
    WHERE        (PROD.SORDER.DLVSTA_0 <> 3)
    GROUP BY PROD.SORDER.BPCNAM_0, PROD.SORDERQ.ITMREF_0, PROD.ITMMASTER.ITMDES1_0, MONTH(PROD.SORDER.ORDDAT_0), YEAR(PROD.SORDER.ORDDAT_0), PROD.SORDER.CUSORDREF_0, PROD.SORDER.SOHNUM_0, 
                             PROD.SORDERQ.SOQSEQ_0 / 1000, PROD.SORDERQ.DEMDLVDAT_0, PROD.SORDER.ORDDAT_0, PROD.SORDERQ.QTY_0, PROD.SORDERQ.QTYSTU_0, PROD.SORDERQ.ODLQTYSTU_0, PROD.SORDERQ.DLVQTYSTU_0, 
                             PROD.SORDER.DLVSTA_0, PROD.SORDER.SHIDAT_0

    I believe you have to make the view directly through SQL Management Studio.  I am looking at our FedEx and I don't see any views I made through Sage.

    I hope that helps.

  • 0 in reply to kfichtner

    Thank you Kfichtner, I will give this a try. That sounds about right though.

Reply Children