Login Form

Best viewed in IE 7.0

ADVERTISEMENTS
ADVERTISEMENT

Sales Order Web Status IAC Example

This is the web order  status IAC. We want to change it so that someone else 
(customer service rep, for example) can check the order status of any customer.

Changes to SAPMV45X

This is the web order  status IAC. We want to change it so that someone else 
(customer service rep, for example) can check the order status of any customer.

  • Transaction

    • Create transaction ZVW10A and link it to SAPMV45X

    •  Create a service file linking to this transaction.

    •  Copy the templates from VW10 (the order status service) to the directory 
      ZVW10A on the a-gate machine.

  • Calling the service from the web

To pass the customer ID directly:

 http://testweb/scripts/wgate/zvw10a/!?~language=en&login-login_user=1000817&~OkCode(LGON)=LGON

To pass all possible variables:

http://testweb/scripts/wgate/zvw10a/!?~language=en&login-login_user=1000817&vbcom-vbeln=999&vbcom-audat=01/01/1999&vbcom-audat_bis=01/26/2000&~OkCode(LGON)=LGON

  • Code

MV45XF10

·         In form check_password, put clear return. First check for sy-tcode = 
“ZVW10A”.

form check_password.                                                    

                                                                        

 if fcode = 'LGON'.                                                    

   if not login-login_user is initial.                                 

     call function 'BAPI_CUSTOMER_CHECKPASSWORD'                       

          exporting                                                    

               customerno           = login-login_user                 

               password             = login-password                   

               sales_organization   = vkorg                             

               distribution_channel = vtweg                            

               division             = spart                            

          importing                                                    

               customer_data        = kna1                             

               customer_number_out  = login-login_user                 

               return               = return.                          

     clear: login-password.                                             

{   INSERT         TSTK900997                                        3 

     if sy-tcode = 'ZVW10A'.                                           

       clear return.                                                   

     endif.                                                             

}   INSERT                                                             

     login-rcode = return.                                             

 

Screen 101
  • Template change to capture customer number

  •  Customer number field: login-login_user

  •  Sales order number field: VBCOM-VBELN

  •  Date from field: VBCOM-AUDAT

  •  Date to field: VBCOM-AUDAT_BIS

  •  OkCode = LGON has field name: OkCode(LGON)

Transport fields
  • Picked: XLIST_PICK – 20000125

  •  Goods Issue: XLIST_GI - 4900000606

  •  Invoiced: XLIST_INVOICE – 90000103

  •  Accounting document: XLIST_ACCOUNT – 90000094

  •  … Rest listed in red in SAP Code section below

 

HTML Code

Code for screen 202 – Display order detail

<HTML>

 

<HEAD>

  <TITLE>Sales Order Status</TITLE>

<link REL="stylesheet" href="`~styleSheetPath`/class1_corp.css"  TYPE="text/css">

</HEAD>

<script language = "javascript">

//Tracking Orders using UPS or Fedex

var upstrack = "http://wwwapps.ups.com/etracking/tracking.cgi?tracknum=";

var fedtrack = "http://www.fedex.com/cgi-bin/track_it?airbills=";

var url = "";

 

        function DisplayTrackingNum(trackNo, type, bfirstrow, trackNo2)

        {

                //Display upto 12 tracking no.  Very similar function is in sapmv45x_202.html

                var cRt = "";

                if       (trackNo != "") 

                {

                        if (bfirstrow )

                        {

                                if (type == "UP") url = upstrack; else url = fedtrack;

                                cRt ="<A href=" + url +trackNo + " target = _blank>" + trackNo + "</a>";

                                if (trackNo2 != "")

                                {

                                        cRt += " , ";

                                        cRt +="<A href=" + url +trackNo2 + " target = _blank>" + trackNo2 + "</a>";

                                }

                        } else{

                                cRt = "<TR ALIGN=LEFT class=class1 height=15><TD colspan=5></TD><TD class=class1>";

                                cRt +="<A href=" + url +trackNo + " target = _blank>" + trackNo + "</a>";

                                if (trackNo2 != "")

                                {

                                        cRt += " , ";

                                        cRt +="<A href=" + url +trackNo2 + " target = _blank>" + trackNo2 + "</a>";

                                }

                                cRt +="</TD></TR>";

                        }

                        document.write(cRt);

                }

        }

       

 

 

<body text="#000000" bgcolor="#ffffff" Link="#666666" ALINK="#666666" VLINK="#999966" leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>

`if ('XLIST-VBELN' == "")`

`else`

<table border="0" width="0" cellspacing="0" cellpadding="0">

        <tr>

                <td valign="top" class="class1"><H3>Details of Order Number `'XLIST-VBELN'`</H3></td>

                <td width=200 align=right class=class1 valign=top></td>

        </tr>       

        <tr>

                <TD ALIGN=left class=class1 height=15><b>Sales Order Date:</b> `'XLIST_SO_DATE'[1]`<p></td>

                <TD ALIGN=left class=class1 height=15><b>WWW Reference Number:</b> `'XLIST_PO'[1]`<p></td>

        </tr>

        <tr>

                <TD ALIGN=left class=class1 height=15><b>Sold to details:</b></td>

                <TD ALIGN=left class=class1 height=15><b>Ship to details:</b></td>

        </tr>

        <TR>

        `if ('XLIST_AG_NAME2'[1] == "")`

                <TD ALIGN=left class=class1 height=15>`'XLIST_AG_NAME1'[1]`</td>

        `else`

                <TD ALIGN=left class=class1 height=15>`'XLIST_AG_NAME1'[1]`, `'XLIST_AG_NAME2'[1]`</td>

        `end`

        `if ('XLIST_WE_NAME2'[1] == "")`

                <TD ALIGN=left class=class1 height=15>`'XLIST_WE_NAME1'[1]`</td>

        `else`

                <TD ALIGN=left class=class1 height=15>`'XLIST_WE_NAME1'[1]`, `'XLIST_WE_NAME2'[1]`</td>

        `end`

        </TR>

        <TR>

                <TD ALIGN=left class=class1 height=15>`'XLIST_AG_STREET'[1]`</td>

                <TD ALIGN=left class=class1 height=15>`'XLIST_WE_STREET'[1]`</td>

        </TR>

        <TR>

                <TD ALIGN=left class=class1 height=15>`'XLIST_AG_CITY1'[1]`, `'XLIST_AG_REGION'[1]`, `'XLIST_AG_ZIP'[1]`, `'XLIST_AG_COUNTRY'[1]`</td>

                <TD ALIGN=left class=class1 height=15>`'XLIST_WE_CITY1'[1]`, `'XLIST_WE_REGION'[1]`, `'XLIST_WE_ZIP'[1]`, `'XLIST_WE_COUNTRY'[1]`</td>

        </TR>

                <TD ALIGN=left class=class1 height=15>Tel:`'XLIST_AG_TEL'[1]`</td>

                <TD ALIGN=left class=class1 height=15>Tel:`'XLIST_WE_TEL'[1]`</td>

        </TR>

        <TR>

                <TD ALIGN=left class=class1 height=15>Tax jurisdiction: `'XLIST_AG_TAX'[1]`<p></td>

                <TD ALIGN=left class=class1 height=15>Tax jurisction: `'XLIST_WE_TAX'[1]`<p></td>

        </TR>

</table>

 

<table border=0 cellspacing=1 cellpadding=0>

        <TR>

                <TD ALIGN=LEFT VALIGN=BOTTOM height="15"><img src="`~imagePath`/sap/grid_item_no.jpg" height="15"></TD>

                <TD ALIGN=LEFT VALIGN=BOTTOM height="15"><img src="`~imagePath`/Text/grid_prod_name.jpg"  height="15"></TD>

                <TD ALIGN=LEFT VALIGN=BOTTOM height="15"><img src="`~imagePath`/Text/grid_qty.jpg"  height="15"></TD>

                <TD ALIGN=LEFT VALIGN=BOTTOM height="15"><img src="`~imagePath`/Text/grid_price.jpg"  height="15"></TD>

                <TD ALIGN=CENTER VALIGN=TOP height="15" width="120"><img src="`~imagePath`/sap/orderdate.jpg" ></TD>

                <TD ALIGN=CENTER VALIGN=TOP height="15"><img src="`~imagePath`/sap/Trackingnumber.jpg" ></TD>

        </tr>       

        <tr>

                <td colspan="6" align="left" valign="top" bgcolor="#999966"><img src="`~imagePath`/Text/clear.gif" width="1" height="1"></td>

        </tr>

`old_item = ""`

`repeat with i from 1 to 'XLIST_POSNR'.dim`

        `if ('XLIST_CFG'[i] != "X")`

        <TR>

                `if ('XLIST_POSNR'[i] == old_item)`

                        <!-- if the same item suppress these informations -->

                        <TD ALIGN=left class=class1 height=15> &#160 </TD>

                        <TD ALIGN=LEFT class=class1 height=15> &#160 </TD>

                        <TD ALIGN=center class=class1 height=15> &#160 </TD>

                        <TD ALIGN=center class=class1 height=15> &#160 </TD>

                        <TD ALIGN=left class=class1 height=15> &#160 </TD>

                `else`

                        <!-- in the 1. line show all information -->

                        <TD ALIGN=LEFT class=class1 height=15>

                        `if ('XLIST_MATNR'[i] == "")`

                                &#160

                        `else`

                                <b>`'XLIST_MATNR'[i]`</b>

                        `end`

                        </TD>

                        <TD ALIGN=LEFT class=class1 height=15>

                        `if ('XLIST_ARKTX'[i] == "")`

                                &#160

                        `else`

                                <b>`'XLIST_ARKTX'[i]`</b>

                        `end`

                        </TD>

                        <TD ALIGN=CENTER class=class1 height=15>

                        `if ('XLIST_KWMENG'[i] == "")`

                                &#160

                        `else`

                                <b>`'XLIST_KWMENG'[i]`</b>

                        `end`

                        </TD>

                        <TD ALIGN=RIGHT class=class1 height=15>

                        `if ('XLIST_NETWR'[i] == "")`

                                &#160

                        `else`

                                <b>$`'XLIST_NETWR'[i]`</b>

                        `end`

                        </TD>

                        <TD ALIGN=CENTER class=class1 height=15><b>`'XLIST_LFDAT'[i]`</b></TD>            

                        <TD ALIGN=LEFT class=class1 height=15>

                        <!-- `'XLIST_LIFNR'[i]` -->

                                <b>

                                <script language= "javascript">

                                        DisplayTrackingNum('`'XLIST_TRACK1'[i]`', '`'XLIST_TRATY'[i]`', 1, '`'XLIST_TRACK2'[i]`');

                                        DisplayTrackingNum('`'XLIST_TRACK3'[i]`', '`'XLIST_TRATY'[i]`', 0, '`'XLIST_TRACK4'[i]`');

                                        DisplayTrackingNum('`'XLIST_TRACK5'[i]`', '`'XLIST_TRATY'[i]`', 0, '`'XLIST_TRACK6'[i]`');

                                        DisplayTrackingNum('`'XLIST_TRACK7'[i]`', '`'XLIST_TRATY'[i]`', 0, '`'XLIST_TRACK8'[i]`');

                                        DisplayTrackingNum('`'XLIST_TRACK9'[i]`', '`'XLIST_TRATY'[i]`', 0, '`'XLIST_TRACK10'[i]`');

                                        DisplayTrackingNum('`'XLIST_TRACK11'[i]`', '`'XLIST_TRATY'[i]`', 0, '`'XLIST_TRACK12'[i]`');

                                </script>

 

                                </b>

                        </TD>

                <!-- save old_item -->

                `old_item = 'XLIST_POSNR'[i]`

                `end`

        </TR>

 

                `if ('XLIST_PORDER'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#000080"><b>.Purchase Order #: </b></font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#000080">`'XLIST_PORDER_Q'[i]`</font></TD>

                                <TD ALIGN=RIGHT class=class1 height=15><font color="#000080">$`'XLIST_PORDER_P'[i]`</font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#000080">`'XLIST_PORDER_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#000080">`'XLIST_PORDER'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_LIFNR'[i] == "")`

                `else`

                        <tr>

                                <td></td>

                                <TD ALIGN=LEFT class=class1 height=15>.Delivery: </TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_LIFNR_Q'[i]`</TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_LFDAT'[i]`</TD>

                                <TD ALIGN=LEFT class=class1 height=15>`'XLIST_LIFNR'[i]`</TD>

                        </TR>

                `end`

 

                `if ('XLIST_PICK'[i] == "")`

                `else`

                        <TR>

                                <TD ALIGN=LEFT class=class1 height=15></TD>

                                <TD ALIGN=LEFT class=class1 height=15>..Picking: </TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_PICK_Q'[i]`</TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_PICK_D'[i]`</TD>

                                <TD ALIGN=LEFT class=class1 height=15>`'XLIST_PICK'[i]`</TD>

                        </TR>

                `end`

                `if ('XLIST_GI'[i] == "")`

                `else`

                        <TR>

                                <TD ALIGN=LEFT class=class1 height=15></TD>

                                <TD ALIGN=LEFT class=class1 height=15>..Shipped: </TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_GI_Q'[i]`</TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_GI_D'[i]`</TD>

                                <TD ALIGN=LEFT class=class1 height=15>`'XLIST_GI'[i]`</TD>

                        </TR>

                `end`

 

                `if ('XLIST_INVOICE'[i] == "")`

                `else`

                        <TR>

                                <TD ALIGN=LEFT class=class1 height=15></TD>

                                <TD ALIGN=LEFT class=class1 height=15>..Invoice: </TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_INVOICE_Q'[i]`</TD>

                                <TD ALIGN=RIGHT class=class1 height=15>$`'XLIST_INVOICE_P'[i]`</TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_INVOICE_D'[i]`</TD>

                                <TD ALIGN=LEFT class=class1 height=15>`'XLIST_INVOICE'[i]`</TD>

                        </TR>

                `end`

 

                `if ('XLIST_ACCOUNT'[i] == "")`

                `else`

                        <TR>

                                <TD ALIGN=LEFT class=class1 height=15></TD>

                                <TD ALIGN=LEFT class=class1 height=15><b><font color="#008000">...Accounting Doc #: </font></b></TD>

                                <TD></TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#008000">`'XLIST_ACCOUNT_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#008000">`'XLIST_ACCOUNT'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_RETURN'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">.Return Doc #: </font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RETURN_Q'[i]`</font></TD>

                                <TD ALIGN=RIGHT class=class1 height=15><font color="#FF4500">$`'XLIST_RETURN_P'[i]`</font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RETURN_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">`'XLIST_RETURN'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_RET_DEL'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">..Return Delivery: </font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_DEL_Q'[i]`</font></TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_DEL_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">`'XLIST_RET_DEL'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_RET_GI'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">...Return Received: </font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_GI_Q'[i]`</font></TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_GI_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">`'XLIST_RET_GI'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_RET_CR'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">..Credit memo: </font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_CR_Q'[i]`</font></TD>

                                <TD ALIGN=RIGHT class=class1 height=15><font color="#FF4500">$`'XLIST_RET_CR_P'[i]`</font></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_CR_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">`'XLIST_RET_CR'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_RET_AC'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15><b><font color="#FF4500">...Credit memo accounting doc #: </font></b></TD>

                                <TD></TD>

                                <TD></TD>

                                <TD ALIGN=CENTER class=class1 height=15><font color="#FF4500">`'XLIST_RET_AC_D'[i]`</font></TD>

                                <TD ALIGN=LEFT class=class1 height=15><font color="#FF4500">`'XLIST_RET_AC'[i]`</font></TD>

                        </TR>

                `end`

 

                `if ('XLIST_OTHERC'[i] == "")`

                `else`

                        <TR>

                                <TD></TD>

                                <TD ALIGN=LEFT class=class1 height=15>.Other doc # (Type C): </TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_OTHERC_Q'[i]`</TD>

                                <TD ALIGN=RIGHT class=class1 height=15>$`'XLIST_OTHERC_P'[i]`</TD>

                                <TD ALIGN=CENTER class=class1 height=15>`'XLIST_OTHERC_D'[i]`</TD>

                                <TD ALIGN=LEFT class=class1 height=15>`'XLIST_OTHERC'[i]`</TD>

                        </TR>

                `end`

 

 

        `end`

 

`end`

`end`

 

</TABLE>

</body>

</html>

 

SAP Code

In module transport_pos_out:

*----------------------------------------------------------------------*

*      FORM    TRANSPORT_POS_OUT                                       *

*----------------------------------------------------------------------*

*                                                                      *

*----------------------------------------------------------------------*

FORM TRANSPORT_POS_OUT.

  DATA: DA_INDEX LIKE SY-TABIX.

 

  DA_INDEX = 1.

  LOOP AT LIST_TAB.

    WRITE LIST_TAB-POSNR     TO LIST_TAB-POSNR NO-ZERO.

    FIELD-SET 'XLIST_POSNR'  DA_INDEX LIST_TAB-POSNR.

*{   INSERT         TSTK900997                                        2

WRITE LIST_TAB-MATNR  TO LIST_TAB-MATNR NO-ZERO USING NO EDIT MASK.

FIELD-SET 'XLIST_MATNR'  DA_INDEX LIST_TAB-MATNR.

WRITE LIST_TAB-NETWR TO C_WERT CURRENCY LIST_TAB-WAERK.

FIELD-SET 'XLIST_NETWR'  DA_INDEX C_WERT.

*}   INSERT

    FIELD-SET 'XLIST_ARKTX'  DA_INDEX LIST_TAB-ARKTX.

 

    WRITE LIST_TAB-KWMENG TO C_MENGE UNIT LIST_TAB-VRKME.

    FIELD-SET 'XLIST_KWMENG' DA_INDEX C_MENGE.

 

    IF LIST_TAB-LFDAT IS INITIAL.

      C_DATUM       = SPACE.

    ELSE.

      WRITE LIST_TAB-LFDAT TO C_DATUM DD/MM/YYYY.

    ENDIF.

    FIELD-SET 'XLIST_LFDAT'  DA_INDEX C_DATUM.

 

    WRITE LIST_TAB-LFIMG TO C_MENGE UNIT LIST_TAB-VRKME.

    FIELD-SET 'XLIST_LFIMG'  DA_INDEX C_MENGE.

 

    FIELD-SET 'XLIST_LIFNR'  DA_INDEX LIST_TAB-LIFNR.

    FIELD-SET 'XLIST_URL_L'  DA_INDEX LIST_TAB-URL_L.

*{   INSERT         TSTK900589                                        1

*   Get delivery tracking information

    TABLES: MAST,      " Material to BOM Link

            STPO,      " BOM item

            ZTRACKING. " Tracking numbers

    DATA COUNT TYPE I.

    SELECT SINGLE * FROM ZTRACKING WHERE VBELN = LIST_TAB-LIFNR.

    IF SY-SUBRC = 0.

       FIELD-SET: 'XLIST_TRACK1'   DA_INDEX ZTRACKING-TRACKING1,

                  'XLIST_TRACK2'   DA_INDEX ZTRACKING-TRACKING2,

                  'XLIST_TRACK3'   DA_INDEX ZTRACKING-TRACKING3,

                  'XLIST_TRACK4'   DA_INDEX ZTRACKING-TRACKING4,

                  'XLIST_TRACK5'   DA_INDEX ZTRACKING-TRACKING5,

                  'XLIST_TRACK6'   DA_INDEX ZTRACKING-TRACKING6,

                  'XLIST_TRACK7'   DA_INDEX ZTRACKING-TRACKING7,

                  'XLIST_TRACK8'   DA_INDEX ZTRACKING-TRACKING8,

                  'XLIST_TRACK9'   DA_INDEX ZTRACKING-TRACKING9,

                  'XLIST_TRACK10'  DA_INDEX ZTRACKING-TRACKING10,

                  'XLIST_TRACK11'  DA_INDEX ZTRACKING-TRACKING11,

                  'XLIST_TRACK12'  DA_INDEX ZTRACKING-TRACKING12,

                  'XLIST_TRATY'    DA_INDEX ZTRACKING-TRATY.

    ENDIF.

    IF LIST_TAB-ARKTX(10) = 'Configured'.

        SELECT: SINGLE * FROM MAST WHERE MATNR = LIST_TAB-MATNR,

                COUNT(*) FROM STPO INTO COUNT WHERE STLNR = MAST-STLNR.

    ELSEIF COUNT <> 0.

        LIST_TAB-LIFNR = 'X'.

        MODIFY LIST_TAB INDEX DA_INDEX.

        COUNT = COUNT - 1.

    ENDIF.

    FIELD-SET 'XLIST_CFG' DA_INDEX LIST_TAB-LIFNR.

 

*** Coded on 01/25/2000    Author: K Wilson ***************************

*** Get for details for CRP

IF SY-TCODE = 'ZVW10A'.    " Only relevant for ITS CRP report tx

  TABLES: BKPF, VBFA, VBPA, ADRC.

   DATA: LINE_ITEM LIKE VBFA-POSNV.

 

   IF DA_INDEX = 1.         "Get sold to and ship to address.

 

*** Get SO date and WWW Ref # from the VBAK table

     SELECT SINGLE * FROM VBAK

            WHERE VBELN = LIST_TAB-VBELN.

              WRITE VBAK-ERDAT TO C_DATUM DD/MM/YYYY.

*** Set Sales Order date

              FIELD-SET: 'XLIST_SO_DATE'   DA_INDEX C_DATUM.

*** Set WWW Reference number

              FIELD-SET: 'XLIST_PO'   DA_INDEX VBAK-BSTNK.

 

*** Get the SO Partner address details from the ADRC table

     SELECT * FROM VBPA        "VBPA is the SO partner table

            WHERE VBELN = LIST_TAB-VBELN.

       IF VBPA-PARVW = 'AG'.      "Sold to

         SELECT SINGLE * FROM ADRC

                WHERE ADDRNUMBER = VBPA-ADRNR.

           FIELD-SET: 'XLIST_AG_NAME1'   DA_INDEX ADRC-MC_NAME1.

           FIELD-SET: 'XLIST_AG_NAME2'   DA_INDEX ADRC-NAME2.

           FIELD-SET: 'XLIST_AG_CITY1'   DA_INDEX ADRC-MC_CITY1.

           FIELD-SET: 'XLIST_AG_ZIP'   DA_INDEX ADRC-POST_CODE1.

           FIELD-SET: 'XLIST_AG_COUNTRY'   DA_INDEX ADRC-COUNTRY.

           FIELD-SET: 'XLIST_AG_REGION'   DA_INDEX ADRC-REGION.

           FIELD-SET: 'XLIST_AG_STREET'   DA_INDEX ADRC-MC_STREET.

           FIELD-SET: 'XLIST_AG_TAX'   DA_INDEX ADRC-TAXJURCODE.

           FIELD-SET: 'XLIST_AG_TEL'   DA_INDEX ADRC-TEL_NUMBER.

       ELSEIF VBPA-PARVW = 'WE'.    "Ship to

         SELECT SINGLE * FROM ADRC

                WHERE ADDRNUMBER = VBPA-ADRNR.

           FIELD-SET: 'XLIST_WE_NAME1'   DA_INDEX ADRC-MC_NAME1.

           FIELD-SET: 'XLIST_WE_NAME2'   DA_INDEX ADRC-NAME2.

           FIELD-SET: 'XLIST_WE_CITY1'   DA_INDEX ADRC-MC_CITY1.

           FIELD-SET: 'XLIST_WE_ZIP'   DA_INDEX ADRC-POST_CODE1.

           FIELD-SET: 'XLIST_WE_COUNTRY'   DA_INDEX ADRC-COUNTRY.

           FIELD-SET: 'XLIST_WE_REGION'   DA_INDEX ADRC-REGION.

           FIELD-SET: 'XLIST_WE_STREET'   DA_INDEX ADRC-MC_STREET.

           FIELD-SET: 'XLIST_WE_TAX'   DA_INDEX ADRC-TAXJURCODE.

           FIELD-SET: 'XLIST_WE_TEL'   DA_INDEX ADRC-TEL_NUMBER.

       ENDIF.

     ENDSELECT.

   ENDIF.

 

*** Determine line item number of the SO

  LINE_ITEM = ( DA_INDEX * 10 ).

*** list_tab-vbeln contains the Sales Order number

   SELECT * FROM VBFA WHERE VBELV = LIST_TAB-VBELN AND

                            POSNV = LINE_ITEM.

      CASE VBFA-VBTYP_N.

        WRITE VBFA-RFMNG TO C_MENGE UNIT LIST_TAB-VRKME.

        WRITE VBFA-ERDAT TO C_DATUM DD/MM/YYYY.

        WRITE VBFA-RFWRT TO C_WERT CURRENCY LIST_TAB-WAERK.

 

*** Delivery document

       WHEN 'J'.

         FIELD-SET: 'XLIST_LIFNR_Q'   DA_INDEX C_MENGE.

*** Select on VBFA using the delivery document in order to find the

*** picking and the goods issue doc

         SELECT * FROM VBFA WHERE VBELV = VBFA-VBELN

                            AND   POSNV = VBFA-POSNN.

           CASE VBFA-VBTYP_N.

             WRITE VBFA-ERDAT TO C_DATUM DD/MM/YYYY.

 

*** Picking document

             WHEN 'Q'.

               FIELD-SET: 'XLIST_PICK'   DA_INDEX VBFA-VBELN.

               FIELD-SET: 'XLIST_PICK_Q'   DA_INDEX C_MENGE.

               FIELD-SET: 'XLIST_PICK_D'   DA_INDEX C_DATUM.

 

*** Goods Issue document

             WHEN 'R'.

               FIELD-SET: 'XLIST_GI'   DA_INDEX VBFA-VBELN.

               FIELD-SET: 'XLIST_GI_Q'   DA_INDEX C_MENGE.

               FIELD-SET: 'XLIST_GI_D'   DA_INDEX C_DATUM.

             WHEN OTHERS.

           ENDCASE.

         ENDSELECT.

 

*** Return document

       WHEN 'H'.

         FIELD-SET: 'XLIST_RETURN'   DA_INDEX VBFA-VBELN.

         FIELD-SET: 'XLIST_RETURN_Q'   DA_INDEX C_MENGE.

         FIELD-SET: 'XLIST_RETURN_P'   DA_INDEX C_WERT.

         FIELD-SET: 'XLIST_RETURN_D'   DA_INDEX C_DATUM.

 

*** Returns delivery doc

       WHEN 'T'.

         FIELD-SET: 'XLIST_RET_DEL'   DA_INDEX VBFA-VBELN.

         FIELD-SET: 'XLIST_RET_DEL_Q'   DA_INDEX C_MENGE.

         FIELD-SET: 'XLIST_RET_DEL_D'   DA_INDEX C_DATUM.

*** Select on VBFA using the delivery document to find the returns

*** goods issue document

         SELECT * FROM VBFA WHERE VBELV = VBFA-VBELN

                            AND   POSNV = VBFA-POSNN.

           CASE VBFA-VBTYP_N.

             WRITE VBFA-ERDAT TO C_DATUM DD/MM/YYYY.

 

*** Returns Goods Issue doc

             WHEN 'R'.

               FIELD-SET: 'XLIST_RET_GI'   DA_INDEX VBFA-VBELN.

               FIELD-SET: 'XLIST_RET_GI_Q'   DA_INDEX C_MENGE.

               FIELD-SET: 'XLIST_RET_GI_D'   DA_INDEX C_DATUM.

             WHEN OTHERS.

           ENDCASE.

         ENDSELECT.

 

*** Returns leading to a credit memo

       WHEN 'O'.

         FIELD-SET: 'XLIST_RET_CR'   DA_INDEX VBFA-VBELN.

         FIELD-SET: 'XLIST_RET_CR_Q'   DA_INDEX C_MENGE.

         FIELD-SET: 'XLIST_RET_CR_P'   DA_INDEX C_WERT.

         FIELD-SET: 'XLIST_RET_CR_D'   DA_INDEX C_DATUM.

         SELECT SINGLE * FROM BKPF WHERE AWKEY = VBFA-VBELN.

           FIELD-SET: 'XLIST_RET_AC'   DA_INDEX BKPF-BELNR.

           WRITE BKPF-BUDAT TO C_DATUM DD/MM/YYYY.

           FIELD-SET: 'XLIST_RET_AC_D'   DA_INDEX C_DATUM.

 

*** Invoice document

       WHEN 'M'.

         FIELD-SET: 'XLIST_INVOICE'   DA_INDEX VBFA-VBELN.

         FIELD-SET: 'XLIST_INVOICE_Q'   DA_INDEX C_MENGE.

         FIELD-SET: 'XLIST_INVOICE_P'   DA_INDEX C_WERT.

         FIELD-SET: 'XLIST_INVOICE_D'   DA_INDEX C_DATUM.

         SELECT SINGLE * FROM BKPF WHERE AWKEY = VBFA-VBELN.

           FIELD-SET: 'XLIST_ACCOUNT'   DA_INDEX BKPF-BELNR.

           WRITE BKPF-BUDAT TO C_DATUM DD/MM/YYYY.

           FIELD-SET: 'XLIST_ACCOUNT_D'   DA_INDEX C_DATUM.

 

       WHEN 'V'.   "Purchase order

           FIELD-SET: 'XLIST_PORDER'   DA_INDEX VBFA-VBELN.

           FIELD-SET: 'XLIST_PORDER_Q'   DA_INDEX C_MENGE.

           FIELD-SET: 'XLIST_PORDER_P'   DA_INDEX C_WERT.

           FIELD-SET: 'XLIST_PORDER_D'   DA_INDEX C_DATUM.

 

       WHEN 'C'.   "Other order

           FIELD-SET: 'XLIST_OTHERC'   DA_INDEX VBFA-VBELN.

           FIELD-SET: 'XLIST_OTHERC_Q'   DA_INDEX C_MENGE.

           FIELD-SET: 'XLIST_OTHERC_P'   DA_INDEX C_WERT.

           FIELD-SET: 'XLIST_OTHERC_D'   DA_INDEX C_DATUM.

       WHEN OTHERS.

     ENDCASE.

   ENDSELECT.

ENDIF.

*}   INSERT

    ADD 1 TO DA_INDEX.

  ENDLOOP.

ENDFORM.

ADVERTISEMENT
Free software downloads