Invoice item condition read
Hi experts,
I need to retreive the "Net Vlaue 1 (w/o freight)" (step 500) of the "ZH00" condition (step 415) which is on the material line item of the invoice.
When I check the KONV table, It's only giving me the "ZH00" values but not the values for "Net Vlaue 1 (w/o freight)" (see picture underneath).
ZH00 is step 415 and I need the values for step 500 - Net Vlaue 1 (w/o freight) but they aren't stored in any table in my opinion.
I've already tried to debug the SAP program that gets this values in VF03 and I see that table XKOMV is filled with all the values in program "SAPLV69A" but I can't seem to find where or how this happens.
Any idea on how to get this value through a Function Module, ... ?
Thanks in advance for your response.
Kind regards,
Niels De Greef
Hello Niels,
you should check the corresponding pricing procedure in V/08 with your functionnal expert and check your step 415.
It is possible to carry over the subtotal value in a specified field as highlighted in this example (with value 2, it will be stored in KOMP-KZWI2 field):
Use the matchcode to choose the fitting field receiving this subtotal data.
Regenerate pricing in existing document to have the value stored in the specified field (VBRP-KZWI2 for our example).
Hope it helps.
Best regards,
Similar Messages
-
In invoice sum of weight for the calculation of a item condition transport
Hy all,
I created 2 order with the same sold to party but two different ship to party.
In these sales order I have a transport condition type with a Freight condition category. For this item condition, I created condition records via VK11. The scale Basis is the weight.
I delivered the two orders and I want to create only one invoice.
My conditions are wrong in the invoice, SAP take the sum of the two weights and display the wrong amount.
Why does not SAP take each weight ?
Apparently I do not have the mistake when the ship to party are the sameu2026
Do you have an idea ?
Thanks
PierreHere an example :
in the order
item 10 : weight 10 --> condition = 10 u20AC
item 20 weight 10 --> condition = 10 u20AC
(weight 20 : 20 u20AC°)
Invoice
item 10 : condition 20 u20AC
Item 20 : condition 20 u20AC
I am waiting for 10 u20AC in the condition.
Thanks
Pierre -
Carry over of item conditions to header conditions of an invoice
I am encountering a situation where the freight conditions at the item level do not carry over to the header in a consistent manner. However, if I look into the item condition and then revisit the header condition, the carried over value magically populates. I am however, unable to save the invoice with this setting. What could be driving this issue and more importantly, how do I fix it? We currently have many invoices in production that probably have the same issue. Please advice.
Hi,
go to V/06
select frieght condition and see whether you tickmark to HEADER CONDITION option.
Kapil -
Item condition repeating in Invoice for Batch split items-V Urgent
Hi Guys,
My Sales order has one line item
One Item condition is there in the pricing procedure, it brings the value as the relevant condition record is existing.
Batch split is happening in delivery and because of which the order item is splitting into two lines, the main item is showing the quantity as zero, and the batch split item is holding the entire quantity in the delivery document..
When this delivery is converting into billing, the invoice is showing two lines, and is bringing the condition both for the main item (zero quantity), and for the batch split item (with full quantity).
Now because of this the customer is being charged twice by way of this condition type which is repeating in both the line items.
Ideally, for the main item which has the quantity as zero, this condition should not come. It should rather appear for the item which holds the full quantity.
How can correct this, pls let me know.
Many Thanks,
Regards,
Viveksummarize the batch split into the main item: use Billing quantity flag = G in copy control tcode VTFL.
Roberto -
Conditional read only radiogroup item losing value when saving
Apex 3.2
I have a radiogroup item that is set to read only after it's populated and the user is not in the ADMIN Role. When non ADMIN users edit the page, it shows the value and they cannot change it, but if they save the page, it loses the value. Works fine if the user has ADMIN role.
This is the Pl/SQL function in the "Item is read only when" section
begin
if :p3_event_detail_id is not null and :p3_notification_period_id != -1 and not apex_util.public_check_authorization('ADMIN') then
return true;
else
return false;
end if;
end;
There is also a Not Null validation on this radiogroup item.
I changed the item type to select list and it works fine, but user like the radiogroup button.
Any ideas?It's using a shared component LOV cleverly called LOV_YN which consists of a static LOV with
1 Display=Yes, Return=Y
2 Display=No, Return=N
The settings in the LOV section on the item iteself:
Named LOV: LOV_YN
Display Extra values: No Dynamic translation: Not translated
Number of columns: 2 Display null: No
Null display value is blank as is null return value
Item was setup as a radio group and was only converted over to a select list to work around this issue. Let me know what else you need and thanks again.
Rgds/Mark M. -
How do billing item conditions hit accounting?
Hello,
I am picking up the billing item condition values from KWERT and the corresponding GL Account SAKN1 from the KONV tabke. KWERT gets stored with the sign. I need to know how this condition amount will hit accounting. Would it be a debit or a credit entry on the accounting side. How can I do this? I cannot use the debit/credit indicator BSEG-SHKZG as we have a summarization on the material and we are trying to re-determine in a custom code what amounts should have posted to BSEG by material. While I am getting the amounts correctly from KONV, I am not able to figure out how these amounts should be treated on the accounting side - as a debit or a credit?
Example, on a regular invoice if the value is positive for a G/L account, on the accounting side the value is reverse in sign. However, this cannot be generalized as we can have many different types of invoices and different combinations.
Thanks,
PrayarnaHi ,
if u are unable to use BSEG for credit or debit , then what u can do is , ask ur Functional ppl abt the condition types , which one will have -ve values in the pricing procedure..
i think is the only way to do in this case , finding which condition type is -ve.
regards
PP. -
How do the billing item conditions hit accounting?
Hello,
I am picking up the billing item condition values from KWERT and the corresponding GL Account SAKN1 from the KONV tabke. KWERT gets stored with the sign. I need to know how this condition amount will hit accounting. Would it be a debit or a credit entry on the accounting side. How can I do this? I cannot use the debit/credit indicator BSEG-SHKZG as we have a summarization on the material and we are trying to re-determine in a custom code what amounts should have posted to BSEG by material. While I am getting the amounts correctly from KONV, I am not able to figure out how these amounts should be treated on the accoutning side - as a debit or a credit?
Example, on a regular invoice if the value is positive for a G/L account, on the accounting side the value is reverse in sign. However, this cannot be generalized as we can have many different types of invoices and different combinations.
Thanks,
PrayarnaHi ,
if u are unable to use BSEG for credit or debit , then what u can do is , ask ur Functional ppl abt the condition types , which one will have -ve values in the pricing procedure..
i think is the only way to do in this case , finding which condition type is -ve.
regards
PP. -
Hi
When I am creating STO PO, in item details Ii am not able to see INVOICE and CONDITIONS tabs in Quality Server, these tabs are appearing in Development server.
can you help
babu raoOkay,
then check whether the calc schema is correct in your quality system. It sounds like there is no content.
regards Paul. -
Hello,
Is there a function module to obtain the pricing conditions of an invoice item?
Thank you
Nuno SIlvaHi,
RV_INVOICE_PRICE is FM.
Regards,
If helpful reward with points(Don't forget). -
Link between SD invoice item and corresponding accounting document item
Hi,
I have a problem regarding the link between the items of an SD invoice ( or
credit note ) and those of the corresponding accounting document. There's a
custom report which extracts information about each credit/debit note
produced within a certain period. This program has recently failed due to a
particular case: a credit note was generated starting by two note requests;
in other terms, cardinality: 1:N exists between the credit note and the
request document. Currently, the program generates duplicated records in
this case, because of the following schema:
-> main loop on VBAK data ( request document header data )
-> inner loop on BSEG data ( accounting document items );
our current access criteria in reading tb_bseg is only:
... where tb_bseg-belnr = tb_vbrk-vbeln.
Providing that tb_vbrk-vbeln doesn't differ and that both tb_vbak and tb_bseg
contain two records ( the two requests the first and the two accounting
document items the second ), the program fails as follows:
° first request -> two lines
° second request -> two lines.
Is there any way to link each invoice item with the corresponding credit
note item?
Thanks in advance to all of you.
Adrian.Hi,
I have a problem regarding the link between the items of an SD invoice ( or
credit note ) and those of the corresponding accounting document. There's a
custom report which extracts information about each credit/debit note
produced within a certain period. This program has recently failed due to a
particular case: a credit note was generated starting by two note requests;
in other terms, cardinality: 1:N exists between the credit note and the
request document. Currently, the program generates duplicated records in
this case, because of the following schema:
-> main loop on VBAK data ( request document header data )
-> inner loop on BSEG data ( accounting document items );
our current access criteria in reading tb_bseg is only:
... where tb_bseg-belnr = tb_vbrk-vbeln.
Providing that tb_vbrk-vbeln doesn't differ and that both tb_vbak and tb_bseg
contain two records ( the two requests the first and the two accounting
document items the second ), the program fails as follows:
° first request -> two lines
° second request -> two lines.
Is there any way to link each invoice item with the corresponding credit
note item?
Thanks in advance to all of you.
Adrian. -
Function module to retrieve the account number linked to an SD invoice item
Hi all,
I should retrieve the gl account number linked to a certain SD invoice item. The
program starts from VBRK and VBRP data. Is there a function module which
enables to get it starting from these header lines? I already used the function
module: RV_INVOICE_ACCOUNT_DETERM ( release: 4.0 ), but in some cases it
doesn't seem to function properly ( the export table TKOMV doesn't contain a
value for the SAKN1 field ). For the invoices for which the function isn't able to
retrieve the account number, the standard accounting analysis functionality returns
the following message: account determination carried out via KOFI type. So I'm
searching for a function module that's able to retrieve the account number in these
cases also.
Thanks in advance.
Adriano.Dear Adriano,
Try with Function Module 'SD_DETERMINE_ACCOUNT_INVOICE '.
Additional Info:
BAPIs related salesorder:
BAPI_SALESORDER_CHANGE Sales order: Change Sales Order
BAPI_SALESORDER_CONFIRMDELVRY Sales Order: Confirmation of Delivery; Document Flow Update
BAPI_SALESORDER_CREATEFROMDAT1 Sales order: Create Sales Order
BAPI_SALESORDER_CREATEFROMDAT2 Sales order: Create Sales Order
BAPI_SALESORDER_CREATEFROMDATA Create Sales Order, No More Maintenance
BAPI_SALESORDER_GETLIST Sales order: List of all Orders for Customer
BAPI_SALESORDER_GETSTATUS Sales Order: Display Status
BAPI_SALESORDER_SIMULATE Sales Order: Simulate Sales Order
FM:
MB_ADD_PURCHASE_ORDER_QUANTITY (Reading and adding open purchase order quantities)
SD_SALES_ORDER_STATUS_WWW for complete details including the delivery information.
Hope this will help.
Regards,
Naveen. -
Is there a way to fix the exchange rate of PO item condition type ?
Hello all,
We have an agreed selling price in RMB from the supplier and the export rate(RMB to USD) is given by them according to delivery date. But we pay in USD. Thus PO header is USD and using M rate but PO price condition type in PO item is RMB -> then convert to USD and sum up into gross price. We want to control the way RMB is converted to USD in the item level.
e.g. PO order currency is USD, PO header exchange rate is a fixed rate input by user
(hedge rate USD -> Local company currency)
PO item 1 agreed PO price is 100 RMB -> PO item condition's rate is 100 RMB per pc
-> export rate RMB to USD fixed at 8 -> 100 / 8 USD
PO item 2 agreed PO price is 200 RMB -> PO item condition's rate is 200 RMB per pc
at export rate -> 200 / 8 USD
Total PO value in USD = 300 RMB / 8 (we don't want it to convert 300 RMB using M rate)
Appreciate if anyone has a solution for this similar case.KiltedTim wrote:
The only way to do so and preserve your warranty is a replacement from Apple. US$199 without AppleCare+, US$49 with. If it doesn't affect the functionality, though, they may not give you that option.
It's not that big of a deal. I'm just seeing if anyone knows how to bend it back straight from experience or imagination. -
Regarding The Contract ITEM Conditions Details
Hello,
I am Uploading a Contract Details from the excel sheet in to the se38 but i am not getting the item condition details for the contract.i have called a BAPI (BAPI_CONTRACT_CREATE) and (BAPI_CONTRACT_CHANGE) .in that i have passed the ITEM CONDITIONS but and am checking in ME33K the item details are not getting updated . I have upload the 8 condition types but only one is getting uodated. I have 4 materials and for each material i have two two condition type, only the first conditon type of earch material is updated but not the second. I am unable to solve the problem please help me out. I will send also the code which i have wriiten.Please help me out as its Very Urgent.
Ecpecting a helpful answer.
REPORT YCMPUR055.
TYPE-POOLS: SLIS, TRUXS.
I N T E R N A L T A B L E S D E C L A R A T I O N
TYPES: BEGIN OF TY_RECORD,
OUR_REF TYPE BAPIMEOUTHEADER-OUR_REF, "Reference Number
VENDOR TYPE BAPIMEOUTHEADER-VENDOR, "Vendor
DOC_TYPE TYPE BAPIMEOUTHEADER-DOC_TYPE, "Agreement Type
DOC_DATE TYPE BAPIMEOUTHEADER-DOC_DATE, "Agreement Date
PURCH_ORG TYPE BAPIMEOUTHEADER-PURCH_ORG, "Purchase Organisation
PUR_GROUP TYPE BAPIMEOUTHEADER-PUR_GROUP, "Purchase Group
ITEM_CAT TYPE BAPIMEOUTITEM-ITEM_CAT, "Item category
PLANT TYPE BAPIMEOUTITEM-PLANT, "Plant
VPER_START TYPE BAPIMEOUTHEADER-VPER_START, "Valid from date
VPER_END TYPE BAPIMEOUTHEADER-VPER_END, "Valid to date
PMNTTRMS TYPE BAPIMEOUTHEADER-PMNTTRMS, "Payment terms
ACUM_VALUE TYPE BAPIMEOUTHEADER-ACUM_VALUE, "Target Value
CURRENCY TYPE BAPIMEOUTHEADER-CURRENCY, "Currency
INCOTERMS1 TYPE BAPIMEOUTITEM-INCOTERMS1, "Incoterms1
INCOTERMS2 TYPE BAPIMEOUTITEM-INCOTERMS2, "Destination
LAST_DATE TYPE SY-DATUM, "Last date
ITEM_NO TYPE BAPIMEOUTITEM-ITEM_NO, "Item number
MATERIAL TYPE BAPIMEOUTITEM-MATERIAL, "Material Code
MAT_DESC TYPE MAKTX , " Material description
SHORT_TEXT TYPE BAPIMEOUTITEM-SHORT_TEXT, "Material Description
MATL_GROUP TYPE BAPIMEOUTITEM-MATL_GROUP, "Material Group
TARGET_QTY TYPE BAPIMEOUTITEM-TARGET_QTY, "Target Quantity
PO_UNIT TYPE BAPIMEOUTITEM-PO_UNIT, "Order Unit
NET_PRICE TYPE BAPIMEOUTITEM-NET_PRICE, "Net Price
PRICE_UNIT TYPE BAPIMEOUTITEM-PRICE_UNIT, "Price Unit
ORDERPR_UN TYPE BAPIMEOUTITEM-ORDERPR_UN, "Order per Unit
TAX_CODE TYPE BAPIMEOUTITEM-TAX_CODE, "Tax code
COND_TYPE1 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE1 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE2 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE2 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE3 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE3 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE4 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE4 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE5 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE5 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE6 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE6 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE7 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE7 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE8 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE8 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE9 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE9 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE10 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE10 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE11 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE11 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE12 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE12 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE13 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE13 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE14 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE14 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE15 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE15 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE16 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE16 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE17 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE17 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE18 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE18 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE19 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE19 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE20 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE20 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE21 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE21 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE22 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE22 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE23 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE23 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE24 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE24 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE25 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE25 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE26 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE26 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE27 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE27 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE28 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE28 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE29 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE29 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE30 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE30 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE31 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE31 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE32 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE32 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE33 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE33 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE34 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE34 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE35 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE35 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE36 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE36 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE37 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE37 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE38 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE38 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE39 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE39 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE40 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE40 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE41 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE41 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE42 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE42 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE43 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE43 TYPE BAPIMEOUTCONDITION-COND_VALUE,
COND_TYPE44 TYPE BAPIMEOUTCONDITION-COND_TYPE,
COND_VALUE44 TYPE BAPIMEOUTCONDITION-COND_VALUE,
END OF TY_RECORD.
TYPES: BEGIN OF TY_OUT,
DOCU_NUM TYPE EKKO-EBELN,
OUR_REF TYPE BAPIMEPOHEADER-OUR_REF,
TEXT(100) TYPE C,
END OF TY_OUT.
TYPES : BEGIN OF TY_MARC,
MATNR TYPE MATNR,
MTART TYPE MTART,
MAKTX TYPE MAKTX,
END OF TY_MARC.
TYPES : BEGIN OF TY_DATA,
MATNR TYPE MATNR,
WERKS TYPE WERKS_D,
END OF TY_DATA.
DATA: IT_OUT TYPE STANDARD TABLE OF TY_OUT,
IS_OUT TYPE TY_OUT.
DATA: IT_DATA TYPE STANDARD TABLE OF TY_DATA,
IS_DATA TYPE TY_DATA.
DATA : IT_MARC TYPE STANDARD TABLE OF TY_MARC,
IS_MARC TYPE TY_MARC.
DATA: IT_RECORD TYPE STANDARD TABLE OF TY_RECORD,
IS_RECORD TYPE TY_RECORD,
I_TAB TYPE TRUXS_T_TEXT_DATA.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_EVENT TYPE SLIS_T_EVENT ,
IT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
IS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IS_LAYOUT TYPE SLIS_LAYOUT_ALV,
IS_EVENT LIKE LINE OF IT_EVENT,
G_REPID TYPE SY-REPID.
DATA:HEADER TYPE BAPIMEOUTHEADER,
HEADERX TYPE BAPIMEOUTHEADERX,
IT_ITEM TYPE TABLE OF BAPIMEOUTITEM,
IT_ITEMX TYPE TABLE OF BAPIMEOUTITEMX,
IT_ITEM_UP TYPE TABLE OF BAPIMEOUTITEM,
IT_ITEMX_UP TYPE TABLE OF BAPIMEOUTITEMX,
IT_ITEM_COND_VALIDITY LIKE BAPIMEOUTVALIDITY OCCURS 0 WITH HEADER LINE,
IT_ITEM_COND_VALIDITY1 LIKE BAPIMEOUTVALIDITY OCCURS 0 WITH HEADER LINE,
IT_ITEM_COND_VALIDITYX LIKE BAPIMEOUTVALIDITYX OCCURS 0 WITH HEADER LINE,
IT_ITEM_CONDITION TYPE TABLE OF BAPIMEOUTCONDITION,
IT_ITEM_CONDITIONX TYPE TABLE OF BAPIMEOUTCONDITIONX,
IT_ITEM_CONDITION_UP TYPE TABLE OF BAPIMEOUTCONDITION,
IT_ITEM_CONDITIONX_UP TYPE TABLE OF BAPIMEOUTCONDITIONX,
IT_RETURN TYPE TABLE OF BAPIRET2,
IS_ITEM TYPE BAPIMEOUTITEM,
IS_ITEMX TYPE BAPIMEOUTITEMX,
IS_ITEM_COND_VALIDITY1 TYPE BAPIMEOUTVALIDITY ,
IS_ITEM_COND_VALIDITYX TYPE BAPIMEOUTVALIDITYX,
IS_ITEM_COND_VALIDITY TYPE BAPIMEOUTVALIDITY ,
IS_ITEM_CONDITION TYPE BAPIMEOUTCONDITION,
IS_ITEM_CONDITIONX TYPE BAPIMEOUTCONDITIONX,
IS_RETURN TYPE BAPIRET2,
EXP_HEADER TYPE BAPIMEOUTHEADER,
IT_RETURN_UP TYPE TABLE OF BAPIRET2,
W_PURCHASINGDOCUMENT TYPE BAPIMEOUTHEADER-NUMBER,
PURCHASINGDOCUMENT TYPE BAPIMEOUTHEADER-NUMBER.
*DATA : W_CNT TYPE I.
DATA : W_CNT TYPE I,
W_BAT TYPE I,
W_INDEX TYPE SY-TABIX,
W_TABIX TYPE SY-TABIX.
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.
PARAMETERS: P_FLNAME TYPE RLGRAP-FILENAME .
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FLNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = P_FLNAME
CHANGING
FILE_NAME = P_FLNAME
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
S T A R T O F S E L E C T I O N
START-OF-SELECTION.
PERFORM UPLOAD_DATA.
PERFORM BAPI_CALL.
PERFORM DISPLAY.
*& Form UPLOAD_DATA
text
--> p1 text
<-- p2 text
FORM UPLOAD_DATA .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_TAB_RAW_DATA = I_TAB
I_FILENAME = P_FLNAME
TABLES
I_TAB_CONVERTED_DATA = IT_RECORD
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.
ENDFORM. " UPLOAD_DATA
*& Form BAPI_CALL
text
--> p1 text
<-- p2 text
FORM BAPI_CALL .
CHECK IT_RECORD[] IS NOT INITIAL.
LOOP AT IT_RECORD INTO IS_RECORD.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = IS_RECORD-MATERIAL
IMPORTING
OUTPUT = IS_RECORD-MATERIAL.
IS_DATA-MATNR = IS_RECORD-MATERIAL.
IS_DATA-WERKS = IS_RECORD-PLANT.
APPEND IS_DATA TO IT_DATA.
CLEAR: IS_DATA, IS_RECORD.
ENDLOOP.
SORT IT_DATA BY MATNR WERKS.
DELETE ADJACENT DUPLICATES FROM IT_DATA COMPARING MATNR WERKS.
SELECT A~MATNR
MTART
B~MAKTX
INTO TABLE IT_MARC
FROM MARA AS A JOIN MAKT AS B
ON A~MATNR = B~MATNR
FOR ALL ENTRIES IN IT_DATA
WHERE A~MATNR = IT_DATA-MATNR
AND SPRAS = SY-LANGU.
IF SY-SUBRC = 0.
ENDIF.
SORT IT_MARC BY MATNR. " WERKS.
SORT IT_RECORD BY OUR_REF.
LOOP AT IT_RECORD INTO IS_RECORD.
W_CNT = W_CNT + 1.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = IS_RECORD-MATERIAL
IMPORTING
OUTPUT = IS_RECORD-MATERIAL
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
READ TABLE IT_MARC INTO IS_MARC WITH KEY MATNR = IS_RECORD-MATERIAL
BINARY SEARCH.
IF SY-SUBRC <> 0.
IS_OUT-OUR_REF = IS_RECORD-OUR_REF.
CONCATENATE IS_RECORD-MATERIAL ' material does not exist..' INTO IS_OUT-TEXT SEPARATED BY SPACE.
APPEND IS_OUT TO IT_OUT.
CLEAR IS_OUT.
CONTINUE.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IS_RECORD-VENDOR
IMPORTING
OUTPUT = IS_RECORD-VENDOR.
HEADER-COMP_CODE = 'SCCL'.
HEADER-DOC_TYPE = IS_RECORD-DOC_TYPE.
HEADER-VENDOR = IS_RECORD-VENDOR.
HEADER-PMNTTRMS = IS_RECORD-PMNTTRMS.
HEADER-ITEM_INTVL = 1.
HEADER-PURCH_ORG = IS_RECORD-PURCH_ORG.
HEADER-PUR_GROUP = IS_RECORD-PUR_GROUP.
HEADER-CURRENCY = IS_RECORD-CURRENCY.
HEADER-DOC_DATE = IS_RECORD-DOC_DATE.
HEADER-VPER_START = IS_RECORD-VPER_START.
HEADER-VPER_END = IS_RECORD-VPER_END.
HEADER-INCOTERMS1 = IS_RECORD-INCOTERMS1.
HEADER-INCOTERMS2 = IS_RECORD-INCOTERMS2.
HEADER-ACUM_VALUE = IS_RECORD-ACUM_VALUE.
HEADER-OUR_REF = IS_RECORD-OUR_REF.
HEADERX-COMP_CODE = 'X'.
HEADERX-DOC_TYPE = 'X'.
HEADERX-VENDOR = 'X'.
HEADERX-PMNTTRMS = 'X'.
HEADERX-PURCH_ORG = 'X'.
HEADERX-PUR_GROUP = 'X'.
HEADERX-CURRENCY = 'X'.
HEADERX-DOC_DATE = 'X'.
HEADERX-VPER_START = 'X'.
HEADERX-VPER_END = 'X'.
HEADERX-INCOTERMS1 = 'X'.
HEADERX-INCOTERMS2 = 'X'.
HEADERX-ACUM_VALUE = 'X'.
HEADERX-OUR_REF = 'X'.
IS_ITEM-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM-SHORT_TEXT = IS_MARC-MAKTX. "IS_RECORD-MAT_DESC .
IF IS_MARC-MTART = 'ZMPN'.
IS_ITEM-EMATERIAL = IS_RECORD-MATERIAL.
ELSE.
IS_ITEM-MATERIAL = IS_RECORD-MATERIAL.
ENDIF.
IS_ITEM-PLANT = IS_RECORD-PLANT.
IS_ITEM-MATL_GROUP = IS_RECORD-MATL_GROUP.
IS_ITEM-TARGET_QTY = IS_RECORD-TARGET_QTY.
IS_ITEM-PO_UNIT = IS_RECORD-PO_UNIT.
IS_ITEM-ORDERPR_UN = IS_RECORD-ORDERPR_UN.
IS_ITEM-NET_PRICE = IS_RECORD-NET_PRICE.
IS_ITEM-PRICE_UNIT = IS_RECORD-PRICE_UNIT.
IS_ITEM-TAX_CODE = IS_RECORD-TAX_CODE.
IS_ITEM-ITEM_CAT = IS_RECORD-ITEM_CAT.
IS_ITEM-PERIOD_IND_EXPIRATION_DATE = 'D'.
APPEND IS_ITEM TO IT_ITEM.
IS_ITEMX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEMX-ITEM_NOX = 'X'.
IS_ITEMX-SHORT_TEXT = 'X'.
IS_ITEMX-MATERIAL = 'X'.
IS_ITEMX-PLANT = 'X'.
IS_ITEMX-MATL_GROUP = 'X'.
IS_ITEMX-TARGET_QTY = 'X'.
IS_ITEMX-PO_UNIT = 'X'.
IS_ITEMX-ORDERPR_UN = 'X'.
IS_ITEMX-NET_PRICE = 'X'.
IS_ITEMX-PRICE_UNIT = 'X'.
IS_ITEMX-TAX_CODE = 'X'.
IS_ITEMX-ITEM_CAT = 'X'.
APPEND IS_ITEMX TO IT_ITEMX.
IS_ITEM_COND_VALIDITY1-PLANT = IS_RECORD-PLANT.
IS_ITEM_COND_VALIDITY1-VALID_FROM = IS_RECORD-VPER_START.
IS_ITEM_COND_VALIDITY1-VALID_TO = IS_RECORD-VPER_END.
IS_ITEM_COND_VALIDITYX-PLANT = 'X'.
IS_ITEM_COND_VALIDITYX-ITEM_NOX = 'X'.
IS_ITEM_COND_VALIDITYX-SERIAL_IDX = 'X'.
IS_ITEM_COND_VALIDITYX-VALID_FROM = 'X'.
IS_ITEM_COND_VALIDITYX-VALID_TO = 'X'.
IF IS_RECORD-COND_TYPE1 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '001'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE1.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE1.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '001'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE2 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '002'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE2.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE2.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '002'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE3 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '003'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE3.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE3.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '003'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE4 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '004'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE4.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE4.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '004'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE5 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '005'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE5.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE5.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '005'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE6 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '006'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE6.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE6.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '006'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE7 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '007'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE7.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE7.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '007'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE8 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '008'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE8.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE8.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '008'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE9 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '009'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE9.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE9.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '009'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE10 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '010'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE10.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE10.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '010'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE11 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '011'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE11.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE11.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '011'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE12 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '012'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE12.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE12.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '012'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE13 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '013'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE13.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE13.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '013'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE14 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '014'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE14.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE14.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '014'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE15 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '015'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE15.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE15.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '015'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE16 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '016'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE16.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE16.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '016'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE17 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '017'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE17.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE17.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '017'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE18 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '018'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE18.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE18.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '018'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE19 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '019'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE19.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE19.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '019'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE20 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '020'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE20.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE20.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '020'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE21 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '021'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE21.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE21.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '021'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE22 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '022'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE22.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE22.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '022'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE23 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '023'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE23.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE23.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '023'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE24 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '024'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE24.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE24.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '024'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE25 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '025'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE25.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE25.
APPEND IS_ITEM_CONDITION TO IT_ITEM_CONDITION.
IS_ITEM_CONDITIONX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITIONX-SERIAL_ID = '025'.
IS_ITEM_CONDITIONX-ITEM_NOX = 'X'.
IS_ITEM_CONDITIONX-COND_TYPE = 'X'.
IS_ITEM_CONDITIONX-COND_VALUE = 'X'.
APPEND IS_ITEM_CONDITIONX TO IT_ITEM_CONDITIONX.
IS_ITEM_COND_VALIDITY1-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITY1-SERIAL_ID = IS_ITEM_CONDITION-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITY1 TO IT_ITEM_COND_VALIDITY1.
IS_ITEM_COND_VALIDITYX-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_COND_VALIDITYX-SERIAL_ID = IS_ITEM_CONDITIONX-SERIAL_ID.
APPEND IS_ITEM_COND_VALIDITYX TO IT_ITEM_COND_VALIDITYX.
ENDIF.
IF IS_RECORD-COND_TYPE26 IS NOT INITIAL.
IS_ITEM_CONDITION-ITEM_NO = IS_RECORD-ITEM_NO.
IS_ITEM_CONDITION-SERIAL_ID = '026'.
IS_ITEM_CONDITION-COND_TYPE = IS_RECORD-COND_TYPE26.
IS_ITEM_CONDITION-COND_VALUE = IS_RECORD-COND_VALUE26.Hi,
Please get the valid condition ( based on date ) from A016 (MK & LPA). With the appropriate KNUMH read the Condition header. You can access the different condition items viz., PB00, RA00 etc., for the values from table KONP. Further if you have Value scales / Quantity scales, you can read the data from KONM, KONW.
An additional tips: in KONP, if you have a condition like RA00 - Rebate, the value will be multiplied by 10 and saven in database to accomodate the discount to the third decimal.
I could not completely understand your requirements like nature of development ( Is it a Report / SAP Script ??) you are working etc., so that I could help you precisely.
Hope this helps,
Best Regards, Murugesh AS
Message was edited by:
Murugesh Arcot -
Condition populated twice in the item conditions in the sales order
Hi,
We are creating the sales order through .csv flat file. The program calls the relevant BAPI which creates the sales order. It also fills the amount from the file for the manual condition type YNET in the pricing procedure. YNET is defaulted automatically in the sales order. But maintaining value is not mandatory.
The problem is in sales order, YNET is displayed twice in the item conditions.
One YNET with no value and another YNET with value which we passed through file.
Any suggestions how we can get only one YNET in the item conditions in the sales order or how the value from our file can be added against the YNET in the pricing procedure with showing another YNET in the item conditions in the sales order
Thanks in advance,Hi Ramakrishnan,
Thanks for your reply. Its a manual condition type. No condition records maintained.
Thanks,
Ram
Original thread:
Hi,
We are creating the sales order through .csv flat file. The program calls the relevant BAPI which creates the sales order. It also fills the amount from the file for the manual condition type YNET in the pricing procedure. YNET is defaulted automatically in the sales order. But maintaining value is not mandatory.
The problem is in sales order, YNET is displayed twice in the item conditions.
One YNET with no value and another YNET with value which we passed through file.
Any suggestions how we can get only one YNET in the item conditions in the sales order or how the value from our file can be added against the YNET in the pricing procedure without showing another YNET in the item conditions in the sales order
Thanks in advance, -
Hi Expert,
I have implimented BADI BBP_DRIVER_DETERMINE and assign custom FM zB46B_DPO_TRANSFER to create PO in backend system.
When I create PO and order it first time... FM zB46B_DPO_TRANSFER is getting called where I want to read PO item condition using FM BBP_PD_PO_GETDETAIL and pass to fm which creates PO in backend.
FM BBP_PD_PO_GETDETAIL is returning blank table PRIDOC[] (pricing data).
I pass guid of the PO to the FM to get the details.
for the saved PO it return every details perfectly.
Do I need to read from buffer or what... how ???
Thanks,
Rajesh.hi ,
Try to read from buffer.
The below code will work in change Badi so definitely it will work in your badi also.
DATA: lo_pd_model TYPE REF TO /sapsrm/if_pdo_model_access.
lo_pd_model = /sapsrm/cl_pdo_model_factory=>get_instance( ).
lo_pd_model->get_detail(
EXPORTING
iv_guid = is_header-guid
iv_with_itemdata = abap_TRUE
IMPORTING
es_header = li_header
ET_PRIDOC = LT_PRIDOC ).
if the above method is not working then get the buffer instance for /SAPSRM/CL_PDO_BO_PO_ADV.
data lo_pdo_po TYPE REF TO /sapsrm/if_pdo_bo_po_adv.
CALL METHOD /sapsrm/cl_pdo_factory_po_adv=>get_buffered_instance
EXPORTING
iv_header_guid = ls_header-guid
RECEIVING
ro_instance = lo_pdo_po.
check the implementation class /SAPSRM/CL_PDO_BO_PO_ADV which method is suitable to get the condition records.
the below code is sample method how to call ....
TRY.
CALL METHOD lo_pdo_po->/sapsrm/if_pdo_do_schedules~get_schedule_line
EXPORTING
iv_item_guid = ls_item-guid
IMPORTING
et_sdln = lt_sdln
eo_meta_data_handler = lo_meta_data_handler
CHANGING
co_message_handler = lo_message_handler.
CATCH /sapsrm/cx_pdo_abort .
CATCH /sapsrm/cx_pdo_no_authorizatio .
ENDTRY.
regards,
Devi
Maybe you are looking for
-
Quick Time Machine Question.
Hi guys, new to the Mac interface (been a windows user all my life), but needless to say I can see what all the fuss was about (OSX is amazing). My question is in regards to time machine. If I erase something off of my Mac, when TM does a backup does
-
Multiple namespaces in an XML document
I have an XML document that I am trying to use within a data flow (XML Source)--the problem is that I keep getting an error message stating that the XML document has multiple namespaces and therefore, SSIS will not create the XSD for me. If I take o
-
The Super Talent memory ram W1600SB8GM is compatible with the model MacBookPro MD103E/A Mid 2012
The Super Talent memory ram W1600SB8GM is compatible with the model MacBookPro MD103E/A Mid 2012
-
Using iPhone from Australia in Thailand
I am looking to buy a iPhone 4s as a gift for a friend in Thailand will a phone purchased in Australia be suitable or should I purchase it from apple store Thailand
-
Hi Guru! I have a big problem.. I work on release 4.7 and I have a report that send an e-mail to SAP users with an attachment. The attachment is a Spool of a Sapscript in PDF format.. How it is possible that the user edit some fields of the pdf ? He