Quantcast
Channel: SCN: Message List - SAP Manufacturing Integration and Intelligence (SAP MII)
Viewing all articles
Browse latest Browse all 4841

Re: SAP MII SQL Data Source connection Returns backdated (old) data.

$
0
0

Hi Jeremy

     This issue has been troubling quiet a bit. The following are the queries I am using.

 

For insert:

/*==================== insertUpdateLoadData ====================*/

  PROCEDURE insertUpdateLoadData(

    iId NUMBER

    ,iPurordid NUMBER

    ,iSplrdid NUMBER

    ,iMatgroupid NUMBER

    ,iHaulerId NUMBER

    ,iTruckid NUMBER

    ,iDriverid NUMBER

    ,iInvoicenum VARCHAR2

    ,iChangedby VARCHAR2

    ,Ret OUT ZNCursor

  ) IS

  x NUMBER;

  err_code VARCHAR2(15);

  err_msg VARCHAR2(200);

  BEGIN

    IF iId > 0 THEN

      BEGIN

        UPDATE tbl_matrcpt_loaddata

        SET inuse='N'

        WHERE id=iId;

        INSERT INTO tbl_matrcpt_loaddata(

          id

          ,purordid

          ,splrid

          ,matgroupid

          ,haulerId

          ,truckid

          ,driverid

          ,vouchernum

          ,invoicenum

          ,changedby

          ,changedon

          ,inuse

        )

        VALUES(

          iId

          ,iPurordid

          ,iSplrdid

          ,iMatgroupid

          ,iHaulerId

          ,iTruckid

          ,iDriverid

          ,TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI')

          ,UPPER(iInvoicenum)

          ,iChangedby

          ,SYSDATE

          ,'Y'

        );

        COMMIT;

      END;

    ELSE

      BEGIN

        INSERT INTO tbl_matrcpt_loaddata(

          id

          ,purordid

          ,splrid

          ,matgroupid

          ,haulerId

          ,truckid

          ,driverid

          ,vouchernum

          ,invoicenum

          ,changedby

          ,changedon

          ,inuse

        )

        VALUES(

          seq_matrcpt_loaddataid.nextval

          ,iPurordid

          ,iSplrdid

          ,iMatgroupid

          ,iHaulerId

          ,iTruckid

          ,iDriverid

          ,TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI')

          ,UPPER(iInvoicenum)

          ,iChangedby

          ,SYSDATE

          ,'Y'

        );

        x:=sql%rowcount;

        COMMIT;

        OPEN Ret FOR

        SELECT 'Success' AS Status, to_char(x)||' record(s) added' AS Message FROM dual;

      END;

    END IF;

   

    EXCEPTION WHEN OTHERS THEN

      err_code := SQLCODE;

      err_msg := SUBSTR(SQLERRM, 1, 200);

 

      OPEN Ret FOR

      SELECT 'Error' AS Status, err_code+err_msg AS Message FROM dual;

  END insertUpdateLoadData;

/*================= End of insertUpdateLoadData ================*/

 

For select

 

SELECT

  a.id

  ,a.purordid

  ,a.splrid

  ,b.ponum

  ,a.matgroupid

  ,d.grpname

  ,a.haulerId

  ,a.truckid

  ,a.driverid

  ,a.vouchernum

  ,a.invoicenum

  ,a.isfrstwt

  ,e.weight as fstwt

  ,e.remark as fstrem

  ,a.issecwt

  ,f.weight as secwt

  ,f.remark as secrem

  ,abs(coalesce(e.weight,0)-coalesce(f.weight,0)) as netwt

  ,a.ismatwtassn

  ,a.isgrnpstd

  ,matrcpt_isscrapbypo(b.id) as isscrap

FROM vw_matrcpt_loaddata a

LEFT JOIN vw_matrcpt_purord b ON a.purordid=b.id

LEFT JOIN vw_matrcpt_matgroup d ON a.matgroupid=d.id

LEFT JOIN vw_matrcpt_weight e ON a.id=e.loadid AND e.weighttyp=1

LEFT JOIN vw_matrcpt_weight f ON a.id=f.loadid AND f.weighttyp=2

WHERE a.changedon between to_date('[Param.1]','YYYY-MM-DD HH24.MI.SS')

and to_date('[Param.2]','YYYY-MM-DD HH24.MI.SS')

AND a.isfrstwt like '[Param.3]'

AND a.issecwt like '[Param.4]'

AND a.isgrnpstd like '[Param.5]'

ORDER BY a.changedon desc

 

 

The insert from the query above takes about 5 mins to reflect changes when results are queried. A select in the sqlplus returns the inserted row instantly.

 

Though a similar insert in the weight table gives the right output instantly.

 

In both cases the select query is the same. The query templates are copies in both the insert cases.

 

Regards

Maaz


Viewing all articles
Browse latest Browse all 4841

Trending Articles