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.inHi 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 -
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
JensSAP 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¤t_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¤t_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.
-SANGARHi,
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?
-
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 Rathorehi,
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. -
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
RaviRavi,
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,
Vinodhi 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
-
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.
-
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