Reg:Multiple item header concept in Mill Products

Dear experts,
I need to understand the multiple item header concept in Mill products.
Could you please share some documents if anyone has implemented.
Is this functionallity available in standard ECC or it is a seperate licenced version.
If it is available could you please guide me with the necessary configuaration required.
I need this process for metal sheet cutting process. Where multiple semifinished parys are recievedin single order.
Regards,
Daya.

Hi Daya,
the multi item order concept is the technical foundation for various solutions in the context of mill products, like the trim order created through the trim optimization interface in APO, or the combined order in in IS-MP or similar industry specific special cases.
What would you need to know specifically and for what kind of process?
There are already a number of use cases realized and available in standard SAP ERP with the IS-MP extension.
You may want to take a look at the PP section of the IS-MP help at:
SAP Mill Products - SAP Library
Anything around order combination, multi item order and co-products is related to this topic.
Best regards,
Stefan

Similar Messages

  • How to create production order for multiple items having common raw materia

    Dear all,
    We are running a sheet metal fabrication company at Vadodara Gujrat.
    Please guide us how to create single production order for multiple items using single raw material??
    For example, We want to produce baby shirt(item code AAA001), shirt with full sleeve(item code AAA002), shirt with half sleeve(item code AAA003),shirt slim fit (item code AAA004),shirt loose fit(item code AAA005) from single raw material say(item code XXX001).
    Right now we have to create 5 production order to produce above 5 items of single sales order  in SAP B1 though it is made from single raw material which is foolishness and time consuming too. (Please also note that to produce any finfish good item, raw material required for that item may vary every time in our process.)
    Kindly guide us how to solve the problem.
    Thanks.
    RUPESH  +91-9227744273
    WEB : www.gorasia.co.in

    Hi Rupesh Gorashiya,
    This is possible through MRP for that you have to put Sales Order first and Run MRP Wizard
    MRP Wizard Put Multi Production Order as per Item Taking in Sales Order just click it on and execute.
    Thanks,
    Srujal Patel

  • Content Conversion: One row with one header and multiple item structures. Possible?

    Dear all,
    I have a input that looks like this:
    HeaderKeySomeHeaderInformationItemKeySomeItemInformationItemKeySomeItemInformation...
    Here's the actual input
    TEHGMESS0026000000288S0001TEI2____026200006112410400000000           18010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000JTEI2____026200006112410400000000           19010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J
    HeaderKey = TEHGMESS
    ItemKey = TEI2____
    Is it possible to process this via MessageTransformBean (my actual scenario is JMS to IDoc)? I already tried but I only succeeded when having new lines in my input to separate between Header and (multiple) Items.
    So when the input and my configuration looks like below it works, but when I only have a single row input it doesn't work, even when specifying xml.recordHeader.endSeparator = '0' / xml.recordItem.endSeparator = '0'. I even tried xml.endSeparator = '0' but no luck.
    Input that works
    TEHGMESS0026000000288S0001
    TEI2____026200006112410400000000           18010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J
    TEI2____026200006112410400000000           19010000000000                                                      00126000000000126000120600000000002000000000                                    000WESTMONOBERTBE2014052309422408120003 000000000000000000000000000000J
    Matching configuration that works for input which structures are delimited by new line.
    Paramentername
    Parametervalue
    Transform.Class
    com.sap.aii.messaging.adapter.Conversion
    Transform.ContentType
    text/xml;charset=utf-8
    xml.conversionType
    StructPlain2XML
    xml.documentName
    MT_TEI2Split
    xml.documentNamespace
    http://hansgrohe.com/pi/MQ/TEI2/10
    xml.keyFieldName
    SATZARTKey
    xml.keyFieldType
    CaseSensitiveString
    xml.processFieldNames
    fromConfiguration
    xml.recordHeader.fieldFixedLengths
    8,4,9,1,4
    xml.recordHeader.fieldNames
    SATZARTKey,SATZLENHG,NUTZLEN,MESSAE,MESSNR
    xml.recordHeader.keyFieldValue
    TEHGMESS
    xml.recordItem.fieldFixedLengths
    8,4,2,10,8,19,3,3,2,10,6,2,10,6,2,10,6,6,6,6,6,11,9,2,10,6,2,10,6,3,4,3,7,14,8,1,31
    xml.recordItem.fieldNames
    SATZARTKey,SATZLEN,BUCHART,TRNR,ANDGNR,MITEM,TEIVARI,BSTSTATU,REFTYP,ORNO,POS,REFTYP1,ORNO1,POS1,CHATYP,CHARGE,CHAPOS,ABBVONL,ABBNACH,ZUBVONL,ZUBNACH,I2MENG,I2BUNR,REFTYPN,ORNON,POSN,REFTYP1N,ORNO1N,POS1N,BSTSTATN,ABUSERAB,ABUSERFN,ABUSERNA,I2TIME,I2LIDNR,I2FMCODE,FILLER
    xml.recordItem.keyFieldValue
    TEI2____
    xml.recordsetName
    records
    xml.recordsetStructure
    recordHeader,1,recordItem,*
    Any clues on this? Is it even possible to have multiple structures in one row? Many thanks in advance
    Jens

    SAP came back to me with this answer:
    First, I would like to point the documentation for Message Transform
    Bean (MTB) in 7.4:
    http://help.sap.com/saphelp_nw74/helpdata/en/57/0b2c4142aef623e10000000a155106/content.htm?frameset=/en/57/0b2c4142aef623e10000000a155106/frameset.htm&current_toc=/en/45/0ea2de423c2d6be10000000a11466f/plain.htm&node_id=18
    As it is written at the beginning of this document, MTB is used to
    call classes written for the Plain Adapter Engine. So you may find
    additional documentation about the parameters for convertion in the
    documentation of the Plain Adapter Engine
    (http://help.sap.com/saphelp_nw74/helpdata/en/0d/00453c91f37151e10000000a11402f/content.htm?frameset=/en/1b/d5ef3b1ad56d4fe10000000a114084/frameset.htm&current_toc=/en/75/246b3de666930fe10000000a114084/plain.htm&node_id=11).There it is written that the structures by default are
    arranged line-by-line. The endSeparator just adds additional character
    string as a separator after the last column in a row.
    I hope that this answers your question. MTB expects the data to be
    structured line by line.
    You may add a custom module, which transforms the message in the
    expected format.
    If you have a look at the second link there's even a more precise wording that multiple structures within one line are not supported:
    xml.NameA.endSeparator
    Even if no specification is made here, a line break must follow since substructures are always expected as a line of the document.
    Bottom line is that it's not supported by now and verfied by me with PI 7.4 SP5
    Many thanks to Ambrish, Amit and Hareesh for the valuable input. Will probably try to work things out for now following Ambrish's / Hareesh's suggestion as this seems easier to implement. Amit's proposal with a dedicated module however would probably be the more polished solution.
    Cheers
    Jens

  • MULTIPLE ITEM PROBLEM IN VL31N BDC

    hI FRIENDS ,
        I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
    CODE IS AS FOLLOWS:.........
    FUNCTION y_synie_bdcinbdly.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(EXTNID) LIKE  MAKT-MAKTG
    *"     VALUE(VENDORNO) LIKE  LFA1-LIFNR
    *"     VALUE(PONUMBER) LIKE  EKKO-EBELN
    *"     VALUE(ITEMNUMBER) LIKE  LIPS-VGPOS
    *"     VALUE(MATERIAL) LIKE  MAKT-MAKTG
    *"     VALUE(DLYQTY) LIKE  LIPS-LFIMG
    *"     VALUE(BTCHNO) LIKE  LIPS-CHARG
    *"     VALUE(POSLR) LIKE  EKES-EBELP OPTIONAL
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"     VALUE(INDELYNO) LIKE  SY-MSGV2
    *"     VALUE(MSG1) LIKE  SY-MSGV1
    *"     VALUE(MSG2) LIKE  SY-MSGV2
    *"     VALUE(MSG3) LIKE  SY-MSGV3
    *"     VALUE(MSG4) LIKE  SY-MSGV4
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL
    *"      ERRTAB STRUCTURE  YSYNERRMSGS
    *"      INDLYTAB STRUCTURE  YSYN_QTYTAB
    Updated by ANAND SYNISE 19.1.2007
      DATA: BEGIN OF bdctab OCCURS 0.
              INCLUDE STRUCTURE bdcdata.
      DATA: END OF bdctab.
      DATA: datenow(10) TYPE c,
            fldvar(30)  TYPE c,
            fldno       TYPE i,
            flditoc(6)  TYPE c,
            qty(13)     TYPE c.
      DATA maxposnr LIKE lips-posnr.
      DATA testposnr TYPE posnr.
      DATA itemnoint TYPE i.
      CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
      CLEAR bdctab.
      REFRESH bdctab.
      PERFORM open_group      USING group user keep holddate ctu.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '4007'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-VERUR_LA'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-LIFNR'.
           bdctab-fval = vendorno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LV50C-BSTNR'.
           bdctab-fval = ponumber.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-VERUR_LA'.
           bdctab-fval = extnid.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=MKAL_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIKP-BLDAT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POPO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '0111'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-PO_MATNR'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = 'WEIT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-PO_MATNR'.
           bdctab-fval = material.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POLO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
    *ADDED BY ANAND ON 22-01-2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  ITEMNUMBER .     "ITEMNUMBER = LIPS-VGPOS
           APPEND bdctab.
    ************ENDED***********************
    ADDED BY MILIND 19.01.2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  poslr .
           APPEND bdctab.
    *    ENDED * *
       CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
           bdctab-fval = ''.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-CHARG(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
          QTY = INDLYTAB-DLYQTY.
            qty = dlyqty.
           bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
           bdctab-fval = QTY.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIPS-CHARG(01)'.
    *     BDCTAB-FVAL = INDLYTAB-BTCHNO.
           bdctab-fval = btchno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=SICH_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-MATNR(02)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
      CALL TRANSACTION 'VL31N' USING bdctab MODE 'N'  MESSAGES INTO messtab.
      subrc = sy-subrc.
      PERFORM close_group USING     ctu.
      CLEAR bdctab.
      REFRESH bdctab.
      IF sy-subrc EQ 0.
        indelyno = sy-msgv2.
      ENDIF.
      LOOP AT messtab.
        MOVE: messtab-msgid TO errtab-msgid,
              messtab-msgnr TO errtab-msgnr,
              messtab-msgv1 TO errtab-msg1,
              messtab-msgv2 TO errtab-msg2,
              messtab-msgv3 TO errtab-msg3,
              messtab-msgv4 TO errtab-msg4.
        APPEND ERRtab.
      ENDLOOP.
      LOOP AT errtab.
        SELECT SINGLE text FROM t100
          INTO errtab-errmsg
          WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
          AND sprsl EQ sy-langu.
        MODIFY errtab.
      ENDLOOP.
    ENDFUNCTION.

    Hi,
    Check this code:
    REPORT Z_CUSTOMER_UPLOAD .
                  D A T A         D E C L A R A T I O N S                *
    DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_CUSTOMER.
    DATA:BEGIN OF IT_success OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_success.
    DATA:BEGIN OF IT_error OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_error.
    DATA: L_INDEX TYPE SY-TABIX.
    DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    ERROR MESSAGE TABLE
    DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : C_S TYPE C VALUE 'S',
            C_E TYPE C VALUE 'E'.
    *DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
         IT_ERROR LIKE IT_CUSTOMER  OCCURS 0.
    DATA : V_RECTOT TYPE I,
            V_RECERR TYPE I,
            V_RECSUC TYPE I.
                  S E L E C T I O N  -  S C R E E N                      *
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER        : P_FILE LIKE RLGRAP-FILENAME .
    SELECTION-SCREEN : END OF BLOCK B1.
               A T  S E L E C T I O N  -  S C R E E N                    *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    to get F4 help for p_file
      PERFORM F4_FILENAME USING P_FILE.
                S T A R T   O F   S E L E C T I O N                      *
    START-OF-SELECTION.
    Uploading data from flat file into it_tab
      PERFORM BDC_UPLOAD USING P_FILE.
      PERFORM PROCESS_DATA.
      PERFORM POPULATE_BDC.
                E N D  O F   S E L E C T I O N                           *
    *END-OF-SELECTION.
    PERFORM DISPLAY_REPORT.
    *&      Form  F4_FILENAME
          text
         -->P_P_FILE  text
    FORM F4_FILENAME USING    P_P_FILE.
    DATA:L_FILE TYPE IBIPPARMS-PATH.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME        = SYST-CPROG
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
    IMPORTING
       FILE_NAME           = L_FILE .
       P_P_FILE = L_FILE.
    ENDFORM.                    " F4_FILENAME
    *&      Form  BDC_UPLOAD
          text
         -->P_P_FILE  text
    FORM BDC_UPLOAD USING    P_P_FILE.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = P_P_FILE
        I_BEGIN_COL                   = 1
        I_BEGIN_ROW                   = 1
        I_END_COL                     = 8
        I_END_ROW                     = 1000
      TABLES
        INTERN                        = IT_DATA
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 2
       OTHERS                        = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " BDC_UPLOAD
    *&      Form  PROCESS_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM PROCESS_DATA.
    SORT IT_DATA BY ROW COL.
      LOOP AT IT_DATA.
    CASE IT_DATA-COL.
    WHEN 1.
    IT_CUSTOMER-KUNNR   = IT_DATA-VALUE.
    WHEN 2.
    IT_CUSTOMER-VKORG   = IT_DATA-VALUE.
    WHEN 3.
    IT_CUSTOMER-VTWEG   = IT_DATA-VALUE.
    WHEN 4.
    IT_CUSTOMER-MATNR   = IT_DATA-VALUE.
    WHEN 5.
    IT_CUSTOMER-KDMAT   = IT_DATA-VALUE.
    WHEN 6.
    IT_CUSTOMER-MEGRU   = IT_DATA-VALUE.
    WHEN 7.
    IT_CUSTOMER-LPRIO   = IT_DATA-VALUE.
    WHEN 8.
    IT_CUSTOMER-ANTLF   = IT_DATA-VALUE.
    APPEND IT_CUSTOMER.
        ENDCASE.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  POPULATE_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_BDC.
    DATA:L_COUNTER TYPE N,
             L_STRING TYPE STRING.
    LOOP AT IT_CUSTOMER.
    AT NEW KUNNR.
    CLEAR L_COUNTER.
          L_INDEX = SY-TABIX.
          READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_dynpro      using 'SAPMV10A' '0100'.
    perform bdc_field       using 'MV10A-KUNNR'
                                  IT_CUSTOMER-KUNNR.
    perform bdc_field       using 'MV10A-VKORG'
                                  IT_CUSTOMER-VKORG.
    perform bdc_field       using 'MV10A-VTWEG'
                                  IT_CUSTOMER-VTWEG.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    ENDAT.
    L_COUNTER = L_COUNTER + 1.
        CLEAR L_STRING.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                            IT_CUSTOMER-MATNR.
    CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using     L_STRING
                                     IT_CUSTOMER-KDMAT.
    CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using   L_STRING
                                    IT_CUSTOMER-MEGRU.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *-- For Page down in Call Transaction Mode
        IF L_COUNTER = 14.
          CLEAR L_COUNTER.
          PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=P+'.
        ENDIF.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                              IT_CUSTOMER-SELKZ.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SELE'.
    perform bdc_dynpro      using 'SAPMV10A' '0300'.
    perform bdc_field       using 'MV10A-KDMAT'
                                  IT_CUSTOMER-KDMAT.
    perform bdc_field       using 'MV10A-LPRIO'
                                  IT_CUSTOMER-LPRIO.
    perform bdc_field       using 'MV10A-ANTLF'
                                  IT_CUSTOMER-ANTLF.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '/EBACK'.
    at end of kunnr.
    READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
          MESSAGES INTO IT_MESSAGES.
          CLEAR IT_BDC.
          REFRESH IT_BDC.
    ENDAT.
      IF NOT IT_MESSAGES[] IS INITIAL.
        PERFORM FORMAT_MESSAGE.
      ENDIF.
    ENDLOOP.
    ENDFORM.                    " POPULATE_BDC
    *&      Form  bdc_dynpro
          text
         -->P_0273   text
         -->P_0274   text
    FORM bdc_dynpro USING    VALUE(P_0273)
                             VALUE(P_0274).
    IT_BDC-PROGRAM = P_0273.
    IT_BDC-DYNPRO = P_0274.
    IT_BDC-DYNBEGIN = 'X'.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0278   text
         -->P_RECORD_KUNNR_001  text
    FORM bdc_field USING    VALUE(P_0278)
                           VALUE(P_0279).
    IT_BDC-FNAM = P_0278.
      IT_BDC-FVAL = P_0279.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_field
    *&      Form  FORMAT_MESSAGE
          text
    -->  p1        text
    <--  p2        text
    FORM FORMAT_MESSAGE.
    DATA: L_MSG(100).
      LOOP AT IT_MESSAGES.
      READ TABLE IT_CUSTOMER INDEX L_INDEX.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  ID        = IT_MESSAGES-MSGID
                  LANG      = SY-LANGU
                  NO        = IT_MESSAGES-MSGNR
                  V1        = IT_MESSAGES-MSGV1
                  V2        = IT_MESSAGES-MSGV2
                  V3        = IT_MESSAGES-MSGV3
                  V4        = IT_MESSAGES-MSGV4
             IMPORTING
                  MSG       = L_MSG
             EXCEPTIONS
                  NOT_FOUND = 1
                  OTHERS    = 2.
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        write:/ l_msg.
      ENDLOOP.
    ENDFORM.                    " FORMAT_MESSAGE
    reward if helpful,
    keerthi

  • Populate Multiple Items bundled in a single query

    Hello,
    I am trying to create a report in which I have mulitple items that I want to populate. All of these use the same query but use different rows in the query to populate themselves. My question is:-
    Is there a way to bundle the item assignment into a single query and populate the items from there? I want to reduce the time it takes for me to display the report and just hit the database once instead.

    Hi there,
    when u say report, i think its a more of a page showing few items on a region whose values are populated from Database rather than a SQL report which will not have any items. Is that correct?
    yes, multiple items of a page can be assigned values at once.
    assume: P1_ITEM1,P1_ITEM2,P1_ITEM3,P1_ITEM4 are different items on a page, an "On-Load Before Header" PL/SQL process can be created to assign values to the items in this way:
    SELECT tab.col1,tab.col2,tab.col3,tab.col4 INTO :P1_ITEM1,:P1_ITEM2,:P1_ITEM3,:P1_ITEM4 FROM TABLE tab;
    Item "Source Used" should be of type: Only When Current Value in session state is null
    Source Type: PL/SQL Expression or function
    and Source Value or EXpression should be some thing like this :P1_ITEM1
    Hope this helps.
    Edited by: Chaitu_Apex on Mar 10, 2010 2:43 PM

  • Is it possible to query multiple items in a single OPC read?

    I am trying to read several data items at one time via OPC. Is this possible? If so, how? I have tried passing multiple URLs to specific items and a single URL header with multiple variable names. Both methods return an OPC error about invalid items. I am trying to do this to speed up OPC access times. Reading each item one-at-a-time is a little time consuming for our application.

    The only way to read multiple datapoints via OPC is to build an OPC item that contains multiple pieces of information. I checked this here, and I had no problem reading an array of data from an OPC Server with DataSocket.
    I read the "opc:/Matrikon.OPC.Simulation/Random.ArrayOfReal8" data item from a Matrikon OPC Simulation Server that publishes an array data item. The OPC Demo server is available for free download at http://www.matrikon.com/opc/htdocs/simx.htm. You can read this as an array of doubles in LabVIEW.
    For your application all you will need to read your data multiple items at a time is a server that can publish arrays.
    Hope this helps.

  • What are the solutions offered to handle length based or mill products?

    We are on 11.5.10. Current version treats beams as each, we have 30 feet beams, 20 feet beams etc.
    We do not want to set-up different items for each length of beam.
    We need ability to tell we have 10 pieces of 26 feet beams in inventory.
    Currently we can only tell we have 260 feet of beams.
    Current solution treats it discretley. We need ability to sell length based items, receive length based items, do inventory management based on length based items.
    a) What are the solutions offered by Oracle in latest releases for Length based products or for Mill products.
    b) If there are any solutions offered by Oracle to handle length based or mill products, can these be back ported to Oracle 11.5.10?

    At the time of entering orders, item inquiry, receiving, inventory transfers etc...You can enter the lot attributes during receiving because you create a new lot number.
    On Item onhand inquiry, you can enter lot context and lot attributes to limit your search to specific lots.
    You may have to write personalizations on other screens.
    Hope this helps,
    Sandeep Gandhi

  • Get Node Key Multiple Items Selected  from ALV tree

    Hello Experts,
    I'm having a problem in getting Node keys for the items displayed as ALV tree.
    I'm able to get Node key, when only ONE record (Item) is selected.
    But, when I select multiple items under a Single node am not able to read(get) the node keys for all the selected items.
    I'm using the classCL_GUI_ALV_TREE.
    I have tried using the method GET_CHECKED_ITEMS, but not getting the keys.
    method GET_SELECTED_ITEM is giving node for a single item. I need it for multiple items selected.
    Thank you for your time.
    -SANGAR

    Hi,
    You need to use checkbox concept. and use method GET_CHECKED_ITEMS get selected items
    please check this tread.
    CL_GUI_ALV_TREE and Checkboxes
    aRs

  • FOR ALL ENTRIES IN - For Batch Split & multiple items

    Hi,
    My Report is to find Production Order from Sale Order.
    Flow of tables -
    (VBAK- VBAP- LIPS - SER01 - OBJK - SER05 - CAUFV)
    Report is working accurate in normal scenario. But -
    Here, In Batch split with multiple items -->
    FOR ALL ENTRIES IN - is not taking values.
    one case for Ex-->
    sale order   so item        obdelivery           obd item           serial no
    39782            10             1234              900001                 12
    39782            10             1234              900002                 13
    39782            20             3456              10                     14
    Here,
    only one OBD 1234 (sr no 12 & 13 ) is get entered in ITAB and not 3456.
    (i.e. in gi_objkso all 3 entries are there, but in gi_objkpo only two entries are transferred)
    Where, Production order is there for all three Sr. No.
    My code is -->
    IF NOT gi_ser01 IS INITIAL.
              SELECT obknr equnr sernr matnr
                     FROM objk
                     INTO TABLE gi_objkso
                     FOR ALL ENTRIES IN gi_ser01
                     WHERE obknr EQ gi_ser01-obknr
                       AND equnr IN so_equnr
                       AND sernr IN so_sernr
                       AND matnr IN so_matnr
                       AND taser EQ 'SER01'.
              IF NOT gi_objkso IS INITIAL.
                           SELECT obknr equnr sernr matnr
                       FROM objk
                       INTO TABLE gi_objkpo
                       FOR ALL ENTRIES IN gi_objkso
                       WHERE sernr EQ gi_objkso-sernr
                         AND equnr EQ gi_objkso-equnr
                         AND matnr EQ gi_objkso-matnr
                         AND taser EQ 'SER05'.

    Hi,
    Do you create more than one production order per sales order line?  If not, you could change the match to look at table AFPO for fields KDAUF = sales order number) and KDPOS = salse item number.
    If you are going down to serial number level, after this select (fields are indexed in index AFPO~3, by default I think), then you could use your additional serial number field match after getting the list of production order numbers for the sales order/item.
    Regards,  Andy

  • Why can I not select multiple items in Muse using Shift Click after installing update?

    I am trying to select multiple items on a Muse page by holding shift and clicking each items. This has been pretty much my standard method across Adobe products but after updating Muse it will no longer let me do this. Am I missing something or did this method change with the update?

    It seems to be happening mostly for Hotmail account.  I just rebooted and tested two accounts.  Only in Hotmail now.

  • Sorting / Get Info for Multiple Item Information

    I want to sort based on album artist and then album. (Can I/How do I) select a secondary sort item? How do I suggest additions to the Multiple Item Information dialog, specifically sort album artist, sort album)?

    Click on Album column header a few times.
    It will cycle Album -> Album by Artist -> Album by Year and back to Album.
    How do I suggest additions to the Multiple Item Information dialog, specifically sort album artist, sort album)?
    No need to.
    Fill in the info in one sort field, then click okay.
    Right click on that song then *Apply sort field* and select which field you want to apply.

  • Any solutions offered by Oracle to handle length based or mill products?

    We are on 11.5.10. Current version treats beams as each, we have 30 feet beams, 20 feet beams etc.
    We do not want to set-up different items for each length of beam.
    We need ability to tell we have 10 pieces of 26 feet beams in inventory.
    Currently we can only tell we have 260 feet of beams.
    Current solution treats it discretley. We need ability to sell length based items, receive length based items, do inventory management based on length based items.
    a) What are the solutions offered by Oracle in latest releases for Length based products or for Mill products.
    b) If there are any solutions offered by Oracle to handle length based or mill products, can these be back ported to Oracle 11.5.10?

    Please do not create duplicate posts across the forums -- What are the solutions offered to handle length based or mill products?

  • Want to Create one PO for multiple Items ..........?

    HI Guy's,
    I am creating PO thorough  Bapi.
    It is also successfully ......
    But here I am not  able to create multiple ITEMS as in transaction ME22 for creating PO.
    For that what can I do ..........
    Greeting's of he Day.
    Ankit Singh Rathore

    hi,
    check this...
    *&      Form  CREATE_PO
          Creating PO
    -->  p1        text
    <--  p2        text
    FORM CREATE_PO .
    DATA: HEAD LIKE BAPIMEPOHEADER,
           HEADX LIKE BAPIMEPOHEADERX,
           ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
           ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
           SCHEDULE LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
           SCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
           CONDITION LIKE BAPIMEPOCONDHEADER OCCURS 0 WITH HEADER LINE,
           CONDITIONX LIKE BAPIMEPOCONDHEADERX OCCURS 0 WITH HEADER LINE,
           RETURNS LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
           POPARTNER LIKE BAPIEKKOP OCCURS 0 WITH HEADER LINE.
    DATA: V_EKGRP TYPE MARC-EKGRP.
    DATA: BEGIN OF IT_WRITE OCCURS 0,
           MESSAGE LIKE BAPIRET2-MESSAGE,
           END OF IT_WRITE.
    DATA: V_EKORG TYPE EKORG.
    DATA: V_MAKT LIKE MAKT-MAKTX.
    DATA: V_MEINS TYPE MEINS.
    DATA: V_REMANT TYPE MATNR,
           V_LINT TYPE MATNR,
           V_LDESC TYPE MAKTX,
           V_RDESC TYPE MAKTX,
           V_LMEINS TYPE MEINS,
           V_RMEINS TYPE MEINS,
           V_LMENGE TYPE ZMENGE,
           V_RMENGE TYPE ZMENGE.
      CONCATENATE ZMMHGAGREMENT-MATNR+0(9) 'L' INTO V_LINT.
      CONCATENATE ZMMHGAGREMENT-MATNR+0(9) 'W' INTO V_REMANT.
      SELECT SINGLE MEINS FROM MARA INTO V_MEINS WHERE MATNR = ZMMHGAGREMENT-MATNR.
      SELECT SINGLE DCODE FROM ZMMDYNCODE INTO V_MAKT WHERE MATNR = ZMMHGAGREMENT-MATNR
                                                        AND ZYEAR = ZMMHGAGREMENT-PYEAR
                                                       AND SEASON = ZMMHGAGREMENT-PSEASON.
      IF SY-SUBRC NE 0.
      SELECT SINGLE MAKTX FROM MAKT INTO V_MAKT WHERE MATNR = ZMMHGAGREMENT-MATNR.
      ENDIF.
    SELECT SINGLE EKORG FROM T001W INTO V_EKORG WHERE WERKS = I_PPLANT.
    V_BUKRS = ZMMHGAGREMENT-PPLANT+0(1).
    CONCATENATE ZMMHGAGREMENT-PPLANT+0(1) '011' INTO V_BUKRS.
      V_CHAR = V_BUKRS+0(2).
      V_EKORG = V_BUKRS.
      CONCATENATE V_CHAR '0' INTO V_EKGRP.
    *POHEAD
       HEAD-COMP_CODE = V_BUKRS.
       HEAD-DOC_TYPE = 'ZREG'.
       HEAD-VENDOR = V_LIFNR.
       HEAD-PURCH_ORG = V_EKORG.
       HEAD-PUR_GROUP = V_EKGRP.
       HEAD-DOC_DATE = ZMMHGAGREMENT-ZDATE. "I_ADATE.
       HEADX-COMP_CODE = 'X'.
       HEADX-DOC_TYPE = 'X'.
       HEADX-VENDOR = 'X'.
       HEADX-PURCH_ORG = 'X'.
       HEADX-PUR_GROUP = 'X'.
       HEADX-DOC_DATE = 'X'.
    *POITEM
        ITEM-PO_ITEM = '10'.
        ITEM-MATERIAL = ZMMHGAGREMENT-MATNR..
        ITEM-SHORT_TEXT = V_MAKT.
        ITEM-PLANT = ZMMHGAGREMENT-PPLANT.
        ITEM-QUANTITY = ZMMHGAGREMENT-MENGE.
        ITEM-PO_UNIT = V_MEINS.
        ITEM-NET_PRICE = ZMMHGAGREMENT-NETPR.
        ITEM-BATCH = ZMMHGAGREMENT-BATCH.
        ITEM-TAX_CODE = 'V0'.
        ITEM-INFO_UPD = ' '.
        APPEND ITEM.
        ITEMX-PO_ITEM = '10'.
        ITEMX-PO_ITEMX = 'X'.
        ITEMX-SHORT_TEXT = 'X'.
        ITEMX-MATERIAL = 'X'.
        ITEMX-PLANT = 'X'.
        ITEMX-QUANTITY = 'X'.
        ITEMX-PO_UNIT = 'X'.
        ITEMX-NET_PRICE = 'X'.
        ITEMX-BATCH = 'x'.
        ITEMX-TAX_CODE = 'X'.
        ITEMX-INFO_UPD = 'X'.
        APPEND ITEMX.
    *ZPAYMENT-PAYMENT
    *SCHEDULE
        SCHEDULE-PO_ITEM = '10'.
        SCHEDULE-DELIVERY_DATE = ZMMHGAGREMENT-RDATE.
        SCHEDULE-QUANTITY = ZMMHGAGREMENT-MENGE..
        APPEND SCHEDULE.
        SCHEDULEX-PO_ITEM = '10'.
        SCHEDULEX-PO_ITEMX = 'X'.
        SCHEDULEX-DELIVERY_DATE = 'X'.
        SCHEDULEX-QUANTITY = 'X'.
        APPEND SCHEDULEX.
    CONDITIONS
        CONDITION-ITM_NUMBER = '10'.
        CONDITION-COND_TYPE  = 'P001'.
        CONDITION-COND_VALUE = ZMMHGAGREMENT-NETPR..
        CONDITION-CURRENCY = 'INR'.
        APPEND CONDITION.
        CONDITIONX-ITM_NUMBER = '10'.
        CONDITIONX-ITM_NUMBERX = 'X'.
        CONDITIONX-COND_TYPE  = 'X'.
        CONDITIONX-COND_VALUE = 'X'.
        CONDITIONX-CURRENCY = 'X'.
        APPEND CONDITIONX.
    IF ZMMHGAGREMENT-MATNR+9(1) = 'K'.
    *POITEM
          V_RDESC TYPE MAKTX,
          V_LMEINS TYPE MEINS,
          V_RMEINS TYPE MEINS.
    SELECT SINGLE MEINS FROM MARA INTO V_LMEINS WHERE MATNR = V_LINT.
    SELECT SINGLE MAKTX FROM MAKT INTO V_LDESC WHERE MATNR = V_LINT.
    V_LMENGE = ( ( ZMMHGAGREMENT-MENGE * 50 ) / 100 ).
        ITEM-PO_ITEM = '20'.
        ITEM-MATERIAL = V_LINT.
        ITEM-SHORT_TEXT = V_LDESC.
        ITEM-PLANT = ZMMHGAGREMENT-PPLANT.
        ITEM-QUANTITY = V_LMENGE.
        ITEM-PO_UNIT  = V_LMEINS.
        ITEM-NET_PRICE = ZPPPRDPOLICY-LRATE."ZMMHGAGREMENT-NETPR.
        ITEM-BATCH = ZMMHGAGREMENT-BATCH.
        ITEM-TAX_CODE = 'V0'.
        ITEM-INFO_UPD = ' '.
        APPEND ITEM.
        ITEMX-PO_ITEM = '20'.
        ITEMX-PO_ITEMX = 'X'.
        ITEMX-SHORT_TEXT = 'X'.
        ITEMX-MATERIAL = 'X'.
        ITEMX-PLANT = 'X'.
        ITEMX-QUANTITY = 'X'.
        ITEMX-PO_UNIT = 'X'.
        ITEMX-NET_PRICE = 'X'.
        ITEMX-BATCH = 'x'.
        ITEMX-TAX_CODE = 'X'.
        ITEMX-INFO_UPD = 'X'.
        APPEND ITEMX.
    *ZPAYMENT-PAYMENT
    *SCHEDULE
        SCHEDULE-PO_ITEM = '20'.
        SCHEDULE-DELIVERY_DATE = ZMMHGAGREMENT-RDATE.
        SCHEDULE-QUANTITY = V_LMENGE.
        APPEND SCHEDULE.
        SCHEDULEX-PO_ITEM = '20'.
        SCHEDULEX-PO_ITEMX = 'X'.
        SCHEDULEX-DELIVERY_DATE = 'X'.
        SCHEDULEX-QUANTITY = 'X'.
        APPEND SCHEDULEX.
    CONDITIONS
        CONDITION-ITM_NUMBER = '20'.
        CONDITION-COND_TYPE  = 'P001'.
        CONDITION-COND_VALUE = ZPPPRDPOLICY-LRATE.
        CONDITION-CURRENCY = 'INR'.
        APPEND CONDITION.
        CONDITIONX-ITM_NUMBER = '20'.
        CONDITIONX-ITM_NUMBERX = 'X'.
        CONDITIONX-COND_TYPE  = 'X'.
        CONDITIONX-COND_VALUE = 'X'.
        CONDITIONX-CURRENCY = 'X'.
        APPEND CONDITIONX.
    ADDING REMNANT TO PO IF REMNANT VALUE IS MAINTAINED IN PO
    IF NOT ZPPPRDPOLICY-RCENT IS INITIAL.
         SELECT SINGLE MEINS FROM MARA INTO V_RMEINS WHERE MATNR = V_REMANT.
         SELECT SINGLE MAKTX FROM MAKT INTO V_RDESC WHERE MATNR = V_REMANT.
         V_RMENGE = ( ( ZMMHGAGREMENT-MENGE * ZPPPRDPOLICY-RCENT ) / 100 ).
        ITEM-PO_ITEM = '30'.
        ITEM-MATERIAL = V_REMANT.
        ITEM-SHORT_TEXT = V_RDESC.
        ITEM-PLANT = ZMMHGAGREMENT-PPLANT.
        ITEM-QUANTITY = V_RMENGE.
        ITEM-PO_UNIT  = V_RMEINS.
        ITEM-NET_PRICE = ZPPPRDPOLICY-RRATE."ZMMHGAGREMENT-NETPR.
        ITEM-BATCH = ZMMHGAGREMENT-BATCH.
        ITEM-TAX_CODE = 'V0'.
        ITEM-INFO_UPD = ' '.
        APPEND ITEM.
        ITEMX-PO_ITEM = '30'.
        ITEMX-PO_ITEMX = 'X'.
        ITEMX-SHORT_TEXT = 'X'.
        ITEMX-MATERIAL = 'X'.
        ITEMX-PLANT = 'X'.
        ITEMX-QUANTITY = 'X'.
        ITEMX-PO_UNIT = 'X'.
        ITEMX-NET_PRICE = 'X'.
        ITEMX-BATCH = 'x'.
        ITEMX-TAX_CODE = 'X'.
        ITEMX-INFO_UPD = 'X'.
        APPEND ITEMX.
    *ZPAYMENT-PAYMENT
    *SCHEDULE
        SCHEDULE-PO_ITEM = '30'.
        SCHEDULE-DELIVERY_DATE = ZMMHGAGREMENT-RDATE.
        SCHEDULE-QUANTITY = V_RMENGE.
        APPEND SCHEDULE.
        SCHEDULEX-PO_ITEM = '30'.
        SCHEDULEX-PO_ITEMX = 'X'.
        SCHEDULEX-DELIVERY_DATE = 'X'.
        SCHEDULEX-QUANTITY = 'X'.
        APPEND SCHEDULEX.
    CONDITIONS
        CONDITION-ITM_NUMBER = '30'.
        CONDITION-COND_TYPE  = 'P001'.
        CONDITION-COND_VALUE = ZPPPRDPOLICY-RRATE.
        CONDITION-CURRENCY = 'INR'.
        APPEND CONDITION.
        CONDITIONX-ITM_NUMBER = '30'.
        CONDITIONX-ITM_NUMBERX = 'X'.
        CONDITIONX-COND_TYPE  = 'X'.
        CONDITIONX-COND_VALUE = 'X'.
        CONDITIONX-CURRENCY = 'X'.
        APPEND CONDITIONX.
    ENDIF.
    ELSE.
    IF NOT ZPPPRDPOLICY-RCENT IS INITIAL.
    SELECT SINGLE MEINS FROM MARA INTO V_RMEINS WHERE MATNR = V_REMANT.
         SELECT SINGLE MAKTX FROM MAKT INTO V_RDESC WHERE MATNR = V_REMANT.
         V_RMENGE = ( ( ZMMHGAGREMENT-MENGE * ZPPPRDPOLICY-RCENT ) / 100 ).
        ITEM-PO_ITEM = '20'.
        ITEM-MATERIAL = V_REMANT.
        ITEM-SHORT_TEXT = V_RDESC.
        ITEM-PLANT = ZMMHGAGREMENT-PPLANT.
        ITEM-QUANTITY = V_RMENGE.
        ITEM-PO_UNIT  = V_RMEINS.
        ITEM-NET_PRICE = ZPPPRDPOLICY-RRATE."ZMMHGAGREMENT-NETPR.
        ITEM-BATCH = ZMMHGAGREMENT-BATCH.
        ITEM-TAX_CODE = 'V0'.
        ITEM-INFO_UPD = ' '.
        APPEND ITEM.
        ITEMX-PO_ITEM = '20'.
        ITEMX-PO_ITEMX = 'X'.
        ITEMX-SHORT_TEXT = 'X'.
        ITEMX-MATERIAL = 'X'.
        ITEMX-PLANT = 'X'.
        ITEMX-QUANTITY = 'X'.
        ITEMX-PO_UNIT = 'X'.
        ITEMX-NET_PRICE = 'X'.
        ITEMX-BATCH = 'x'.
        ITEMX-TAX_CODE = 'X'.
        ITEMX-INFO_UPD = 'X'.
        APPEND ITEMX.
    *ZPAYMENT-PAYMENT
    *SCHEDULE
        SCHEDULE-PO_ITEM = '20'.
        SCHEDULE-DELIVERY_DATE = ZMMHGAGREMENT-RDATE.
        SCHEDULE-QUANTITY = V_RMENGE.
        APPEND SCHEDULE.
        SCHEDULEX-PO_ITEM = '20'.
        SCHEDULEX-PO_ITEMX = 'X'.
        SCHEDULEX-DELIVERY_DATE = 'X'.
        SCHEDULEX-QUANTITY = 'X'.
        APPEND SCHEDULEX.
    CONDITIONS
        CONDITION-ITM_NUMBER = '20'.
        CONDITION-COND_TYPE  = 'P001'.
        CONDITION-COND_VALUE = ZPPPRDPOLICY-RRATE.
        CONDITION-CURRENCY = 'INR'.
        APPEND CONDITION.
        CONDITIONX-ITM_NUMBER = '20'.
        CONDITIONX-ITM_NUMBERX = 'X'.
        CONDITIONX-COND_TYPE  = 'X'.
        CONDITIONX-COND_VALUE = 'X'.
        CONDITIONX-CURRENCY = 'X'.
        APPEND CONDITIONX.
    ENDIF.
    ENDIF.
    FOR PARTNER FUNCTION
       POPARTNER-PARTNERDESC =  'VN'.
       POPARTNER-LANGU = 'EN' .
       POPARTNER-BUSPARTNO =  ZMMHGAGREMENT-GNUMBER.
       APPEND POPARTNER.
      POPARTNER-PARTNERDESC =  'PI'.
      POPARTNER-LANGU = 'EN' .
    IF ZPAYMENT-PAYMENT = '1'. "V_PAYMENT = '1'.   ".
      POPARTNER-BUSPARTNO =  ZMMHGAGREMENT-ONUMBER.
    ELSE.
    POPARTNER-BUSPARTNO =  ZMMHGAGREMENT-GNUMBER.
    ENDIF.
    APPEND POPARTNER.
    *BREAK SAPUSER..
      CALL FUNCTION 'BAPI_PO_CREATE1'
      EXPORTING
        POHEADER                     = HEAD
       POHEADERX                     =  HEADX
      POADDRVENDOR                 =
      TESTRUN                      =
    IMPORTING
       EXPPURCHASEORDER              = I_PNO
      EXPHEADER                    =
      EXPPOEXPIMPHEADER            =
    TABLES
       RETURN                        = RETURNS
       POITEM                        = ITEM
       POITEMX                       = ITEMX
      POADDRDELIVERY               =
       POSCHEDULE                    = SCHEDULE
       POSCHEDULEX                   = SCHEDULEX
       POCONDHEADER                  = CONDITION
       POCONDHEADERX                 = CONDITIONX
       POPARTNER                     = POPARTNER.
    POCOND                       =
    POCONDX                      =
    POLIMITS                     =
    IF NOT I_PNO IS INITIAL.
       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    ELSE.
    LOOP AT RETURNS WHERE TYPE = 'E'..
    IT_WRITE-MESSAGE = RETURNS-MESSAGE.
    APPEND IT_WRITE.
    ENDLOOP.

  • IS-Mill Product.

    Dear Guru,
                           What is mean by IS - Mill Product? what is purpose of IS-Mill in SAP plz give me sutiable example releated to this
    IS-Mill? What is need for this customizing suppose i am not customizing then what happen?
    Regs
    Ravi

    Ravi,
    General Info about Mill Products
    http://www.sap.com/usa/industries/millproducts/index.epx
    Solution Maps for Mill Products
    http://www.sap.com/solutions/businessmaps/F5AE392781A542FABEC2728D9B2E4E56/index.epx
    I haven't seen a standalone 'Best Practices' for Mill products since 4.6C.  However, there are some Best practices that use the Mill Products solution.  In these, you can find configuration guides. Look at
    Building Materials
    http://help.sap.com/bp_bm604/BM_US/html/index.htm
    Fabricated Metals
    http://help.sap.com/bp_fm604/FM_US/html/index.htm
    for a start
    Regards,
    DB49

  • Update termination error while parking multiple items using BAPI fn module

    hi experts,
       i am facing a problem with bapi_incominginvoice_park.when i am trying to park invoice for single item for the po the invoice number is generating and getting updated in database in the same way when i am trying to park for multiple items the invoice number is genrating but not getting updated in database table.Here i am getting error 'Express document update terminated BY THE user'.How to solve this problem to find these error i have gone to se13 transaction,there it is showing SAQCL_DUPRC.it is saying duplicate errors in table but there are no duplicates in table.
    Thanks,
    Vinod

    hi vinod ....i tried the following it worked...
    while sending tax info dont send any tax table manually  i.e updating the vit_tax table using append statement
    also while testing function module for multiple PO , no need to provide the tax info in the tax table
    what we have to do is only to provide 'X' In the tax calculation option in the header details
    HEADERDATA-CALC_TAX_IND = 'X'.
    1.this will enable tax
    2. will make the po status green so that the parked document can be posted .

Maybe you are looking for

  • "OS requirements not met" when installing CS5.5 on Windows 8

    I am trying to install the trial version of CS5.5 to my Surface Pro, running Windows 8 Professional 64-bit. Installation fails completely for all components. No Adobe products other than Flash Player and Reader have ever been installed on this comput

  • Weird issue using Number

    Hi All, I create a custom component not long ago http://forums.adobe.com/message/3798449#3798449 To store value from this component I am using realValue parameter but when I pass a number with 2 decimals, it store in the database the number plus 15 d

  • ITunes User Feature Suggestions

    I think it would be beneficial for Apple and the users to have a dedicated thread for User based feature suggestions ,So with this in mind I hope you add this as a sticky or ad this as a category all it's own .

  • Using flowed layout in Process Management

    Hi All, I'm encountering difficulties to use a form with a flowed table in my Process Management process. First, after binding the form to xsd schema when I add another row in the table it automatically populated with the same data as the first one.

  • Error updating in table

    Hi, I'm updating a Master-Detail table, when I'm updating table its generate following error i.e Current version of data in database has changed since user initiated update.current checksum = "650813AF26DC2A7B5B371364DA0947F4", item checksum = "8A5BD