‎2007 Apr 16 3:37 PM
Hi:
I'm using BAPI_SALESORDER_CREATEFROMDAT2 to generated invoices...but there's something wrong...
I got two companies and I must generate two invoices for each (one in PEN and other one in USD).
The problem is that for the first company, both invoices are generated in PEN and for the second company both are generated in USD....
Here's a piece of code...
LOOP AT T_KUNNR_WONG ASSIGNING <KUNNR>.
PERFORM BORRAR_TABLAS.
LOOP AT T_FACT_WONG ASSIGNING <FACT>
WHERE WAERS EQ 'PEN'
AND KUNNR EQ <KUNNR>-KUNNR.
W_POSICION = W_POSICION + 10.
IF ORDER_HEADER_IN[] IS INITIAL.
ORDER_HEADER_IN-DOC_TYPE = C_DOC_TYPE.
ORDER_HEADER_IN-SALES_ORG = <FACT>-VKORG.
ORDER_HEADER_IN-DISTR_CHAN = C_VTWEG.
ORDER_HEADER_IN-DIVISION = C_SPART.
ORDER_HEADER_IN-PURCH_DATE = SY-DATUM.
ORDER_HEADER_IN-CURRENCY = <FACT>-WAERS.
APPEND ORDER_HEADER_IN.
ORDER_HEADER_INX-UPDATEFLAG = 'I'.
ORDER_HEADER_INX-PURCH_DATE = 'X'.
ORDER_HEADER_INX-DOC_TYPE = 'X'.
ORDER_HEADER_INX-SALES_ORG = 'X'.
ORDER_HEADER_INX-DISTR_CHAN = 'X'.
ORDER_HEADER_INX-DIVISION = 'X'.
APPEND ORDER_HEADER_INX.
ENDIF.
ORDER_ITEMS_IN-MATERIAL = T_CONSTANTS-LOW.
ORDER_ITEMS_IN-PO_ITM_NO = W_POSICION.
ORDER_ITEMS_IN-TARGET_VAL = <FACT>-ZVANETO.
ORDER_ITEMS_IN-CURRENCY = <FACT>-WAERS.
ORDER_ITEMS_IN-PLANT = <FACT>-VKBUR.
APPEND ORDER_ITEMS_IN.
ORDER_SCHEDULES_IN-ITM_NUMBER = W_POSICION.
ORDER_SCHEDULES_IN-REQ_QTY = 1.
ORDER_SCHEDULES_IN-REQ_DATE = SY-DATUM.
ORDER_SCHEDULES_IN-DLV_DATE = SY-DATUM.
APPEND ORDER_SCHEDULES_IN.
ORDER_ITEMS_INX-UPDATEFLAG = 'I'.
ORDER_ITEMS_INX-MATERIAL = 'X'.
ORDER_ITEMS_INX-TARGET_VAL = 'X'.
ORDER_ITEMS_INX-PLANT = 'X'.
APPEND ORDER_ITEMS_INX.
ORDER_PARTNERS-PARTN_ROLE = C_AG.
ORDER_PARTNERS-PARTN_NUMB = <FACT>-KUNNR.
APPEND ORDER_PARTNERS.
ORDER_CONDITIONS_IN-COND_TYPE = C_ZPR1.
ORDER_CONDITIONS_IN-ITM_NUMBER = W_POSICION.
ORDER_CONDITIONS_IN-COND_VALUE = <FACT>-ZVANETO.
ORDER_CONDITIONS_IN-CURRENCY = <FACT>-WAERS.
APPEND ORDER_CONDITIONS_IN.
ENDLOOP.
IF NOT ORDER_ITEMS_IN[] IS INITIAL.
PERFORM BAPI TABLES ORDER_HEADER_IN
ORDER_HEADER_INX
ORDER_ITEMS_IN
ORDER_ITEMS_INX
ORDER_PARTNERS
ORDER_SCHEDULES_IN
ORDER_CONDITIONS_IN.
ENDIF.
ENDLOOP.
FORM BAPI TABLES T_ORDER_HEADER_IN STRUCTURE BAPISDHD1
T_ORDER_HEADER_INX STRUCTURE BAPISDHD1X
T_ORDER_ITEMS_IN STRUCTURE BAPISDITM
T_ORDER_ITEMS_INX STRUCTURE BAPISDITMX
T_ORDER_PARTNERS STRUCTURE BAPIPARNR
T_ORDER_SCHEDULES_IN STRUCTURE BAPISCHDL
T_ORDER_CONDITIONS_IN STRUCTURE BAPICOND.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = T_ORDER_HEADER_IN
ORDER_HEADER_INX = T_ORDER_HEADER_INX
INT_NUMBER_ASSIGNMENT = 'X'
TABLES
RETURN = RETURN
ORDER_ITEMS_IN = T_ORDER_ITEMS_IN
ORDER_ITEMS_INX = T_ORDER_ITEMS_INX
ORDER_PARTNERS = T_ORDER_PARTNERS
ORDER_SCHEDULES_IN = T_ORDER_SCHEDULES_IN
ORDER_CONDITIONS_IN = T_ORDER_CONDITIONS_IN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
PERFORM SLEEP.
ENDFORM.
I clean all tables before each BAPI call....Can you help me on this???
Greetings,
Blag.
Message was edited by:
Alvaro Tejada Galindo
‎2007 Apr 16 3:51 PM
Hello,
Please check the following.
1. Clear the header record before the loop ..... endloop.
2. In debugging, check all the tables that have WAERS and what are the values populated before the BAPI call.
3. For the 1st Loop ...... there is no ENDLOOP.
Thanks,
Suresh Ganti
‎2007 Apr 16 4:01 PM
Hi Suresh:
Yeah...There wasn't an ENDLOOP, but it was just a typo error -:)
I'm cleaning the header for the other LOOPS...Also I'm using FIELD-SYMBOLS, so I don't think that's the real problem...
I have checked the DATA a lot of times, and even when CURRENCY is set to USD...The invoice generate a PEN one...
Greetings,
Blag.
‎2007 Apr 16 4:25 PM
Hi Alvaro ,
Could you check the account group of customer , may be currency is not defined for the customer master data .
I'm not sure this would be handy ...
Kind Regards.
Message was edited by:
Caglar Ozkor
‎2007 Apr 16 4:32 PM
Hi Alvaro,
Please check the currency in customer master data?
Thanks,
Suresh Ganti
‎2007 Apr 16 4:32 PM
Hi Caglar:
Currency is defined for both customers...As I said...BAPI should create something like this...
WONG PEN
WONG USD
METR PEN
METR USD
But it's creating
WONG PEN
WONG PEN
METR USD
METR USD
Greetings,
Blag.
‎2007 Apr 16 5:40 PM
I fixed -:D
This line was needed...
ORDER_HEADER_INX-CURRENCY = 'X'.
Greetings,
Blag.