Program to update po item condition

Hi I need to write a progra which will update PO item's condition. Prefer not to use BDC, BAPI_PO_CHANGE looks promising but doesn't update the item condition here's my code:
  s_po_i-po_item    = P_ebelp.
  s_po_i-calctype   = 'B'.
  s_pox_i-po_item   = 'X'.
  s_pox_i-calctype  = 'X'.
  append s_po_i  to t_po_i.
  append s_pox_i to t_pox_i.
  CALL FUNCTION 'BAPI_PO_CHANGE'
    EXPORTING
      PURCHASEORDER                = p_ebeln
      POHEADER                     = s_hdr
      POHEADERX                    = s_hdrx
   TABLES
     RETURN                       = t_ret
     POITEM                       = t_po_i
     POITEMX                      = t_pox_i
    POCONDHEADER                 = t_pocond_h
    POCONDHEADERX                = t_pocondx_h
    POCOND                       = t_pocond_i
    POCONDX                      = t_pocondx_i
  commit work.
Rgds.

GOT IT !!!!
  s_po_i-po_item    = P_ebelp.
  s_po_i-calctype   = 'B'.       "carry out new pricing
  s_pox_i-po_item   = p_ebelp.
  s_pox_i-calctype  = c_true.
  append s_po_i  to t_po_i.
  append s_pox_i to t_pox_i.
  CALL FUNCTION 'BAPI_PO_CHANGE'
    EXPORTING
      PURCHASEORDER = p_ebeln
    TABLES
      RETURN        = t_ret
      POITEM        = t_po_i
      POITEMX       = t_pox_i
     POCOND        = t_pocond_i
     POCONDX       = t_pocondx_i.
  commit work.

Similar Messages

  • Is it possible to query an Item with two or more conditions in OOB Update List Item WF Step

    In SharePoint Designer 2010, in Workflows, is it possible to give more then one condition when querying items? Let me explain, it is fairly easy to drop Update item in this list step, and say, for example, Update item with ID X. However, if is it possible
    to do something along this lines with OOB steps, Update an item in this list where Title is Equal to "abc" and Modify date no older then 3 days.
    Update: Workflow is started when the item is added to the list. What I would like is to update some fields on this item depending on information in this item and in external list. For example
    Current Item Field 1 has value "abc"
    Current Item Field 2 has value "123"
    Current Item Field 3 has value "456"
    External List has Item with value in Field 1 "123"
    External List has Item with value in Field 2 "abc"
    External List has Item with value in Field 3 "xyz"
    Update Current Item Field 3 with value "xyz"
    In short I would need following query - Update Current_Item_Field_3 with value from External_List_Field_3 where Field 1 is equal to Current_Item_Field_2 and Field 2 is equal to Current_Item_Field_1

    Hi,
    From your description, I understand you want to update list item with workflow based on two or more conditions.
    To resolve your issue, you need to use “If current item field equals value” condition. Use this condition to compare a field in the current item that the list or reusable list workflow is currently running on to a value. Values can be static text, dynamic
    strings, and lookups to variables, context information, or other SharePoint fields. And you can learn more about each condition by referring to the article:
    https://support.office.com/en-in/article/Workflow-conditions-in-SharePoint-Designer-2010-A-quick-reference-guide-d8e33ac7-9336-487f-a60b-388c4ea497ff?ui=en-US&rs=en-IN&ad=IN
    I assume your External List is called “ListB”, and Current List is called “ListA”, You can follow the steps below:
    1. Add “If current item field equals value" for condition that ListB Field2 equals to ListA Field1, then set the second condition “ListB Field1 equal to ListA Field2” as the “Find the List Item” in the “Lookup for Single line of text”
    as the screenshot below:
    2. Add “Update List Item” as the screenshot below for updating Current_Item_Field_3 with value from External_List_Field_3. In addition, you should set “Find the List Item” in “Lookup for Single line of text” same to the “Find the List Item” in step 1:
    In addition, if you have more conditions, you could add “If current item field equals value” condition, and you should set each “Find the List Item” in “Lookup for Single line of text” same to the “Find the List Item” in step 1.
    Regards,
    Rebecca Tu
    TechNet Community Support

  • Error while updating pricing item

    Hi All,
    I have an issue to ask, the problem is this issue not happen every time, and sometimes it can solved it self.
    We are using SRM 5.0
    SRM_SERVER     550     0008     SAPKIBKT08     SRM_SERVER
    SAP_AP                  700     0008    SAPKNA700      SAP Application Platform
    Its about  Error while updating pricing item 49ABA6C4998216D9E1000000AC103B65 (document 49ABA6CE998216D9E1000000AC103B65) which i found in SLG1 and SM53.
    When this issue occured, all transaction cannot be process, like : transfer ext requirement from R/3 to SRM --> failed , then when generate PO from accepted quotation , the PO net price will be zero.
    All the error is the same, error has occured in pricing.
    I already check using program
    RSVMCRT_HEALTH_CHECK  and BBP_CND_CUSTOMIZING_CHECK , IPC is running and all java enviroment message status = green, but if i simulate using a product, it will show error in pricing.
    Can you please help to advise if any of you ever facing the same error, your respond will highly appreciated.
    Regards,
    w1n

    Hi,
    I think buffer has old condition.
    Please run the Function Module IPC_DET_CLEAR_CUST_BUFFER.
    OR reset the VMC -> Reset  in SM52.
    Regards,
    Masa

  • How to update cost related condition type amount in sales order without disturbing other condition types.

    Hi ,
    How to updae only one item condition  ZYV0 value in sales order. If I can see we have several options from pricing type to update condition types but here My requirement is to update only one condition amount .If I can see other pticing types they will update all condition types .
    -Exclusive option is checked for all the tables maintained in access sequence,
    Below options were not worked for me.
    -In condition type ----> Condition category has been updated with "D"(Tax) pricing type-"G" to update in sales order
    - This option worked for me but  condition category  "F"(frieght) and pricing type -H but in conditions tab when I update two condition amounts are activated for one condition type like below.
    ZYV0--30 % (old condition record value updated in sales order)
    ZYV0- 50% (updated condition record)
    Regards

    Hi Rita,
    Tried with condition category "u" and updated with pricing type "U" . It works as same I used old logic.
    with condition categories "D" and "F" it will update old and new condition record values in sales order.
    ZYV0--30 % (old condition record value updated in sales order)
    ZYV0- 50% (updated condition record)
    I have updated  here existing condition record value from 30 % to 50 % validity periods are not changed.
    Regards

  • How to update multiple Price conditions in FM CRM_ORDER_MAINTAIN

    Hi All,
          need to update multiple price conditions in a contract Thru FM CRM_ORDER_MAINTAIN.
    please see the piece of code that am using...
      am able to update single price condition...but not able to populate 2 or more .......i,e..ADD A Condition
    i,e...DATA : ls_cond TYPE prct_cond_external_input,
           lt_cond TYPE prct_cond_external_input_t.
    DATA : ls_con TYPE PRCT_COND_DU,
           lt_con TYPE PRCT_COND_DU_TAB.
    Create Condition Type
    *ls_con-KNUMV = lv_header_guid.
    *ls_con-KPOSN = lv_item_guid.
    ls_con-stunr  = '134'.
    IF Y EQ 1.
      ls_con-ZAEHK = '001'.
    ELSE.
       ls_con-ZAEHK = '002'.
    *ENDIF.
    *ls_con-kschl = 'ZFP1'.
    **ls_cond-waers = 'CNY'.
    *ls_con-kbetr = '0.00'.
    *ls_con-kpein = '1'.
    ls_cond-kschl = 'ZFP1'.
    ls_cond-waers = 'CNY'.
    ls_cond-kbetr = '0'.
    ls_cond-kpein = '1'.
    ls_cond-knumh = lv_item_guid .
    CLEAR ls_Price_doc.
    ls_Price_doc-ref_guid = lv_item_guid.
    ls_Price_doc-ref_kind = 'A'.
    IF Y EQ 1.
    ls_Price_doc-ref_handle = '000000001'.
    ELSE.
      ls_Price_doc-ref_handle = '000000002'.
    ENDIF.
    *ls_price_doc-PRIC_COND[] = lt_cond[].
    *INSERT ls_con into table ls_price_doc-PRIC_COND.
    INSERT ls_cond into table ls_price_doc-COND_ADD.
    INSERT ls_price_doc INTO TABLE lt_price_doc.
    ls_input_fields-ref_guid    = lv_item_guid.
    ls_input_field_names-fieldname = 'KNUMH'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'KPOSN'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'KSCHL'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'KPEIN'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'STUNR'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'ZAEHK'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'WAERS'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    ls_input_field_names-fieldname = 'KBETR'.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    CLEAR ls_input_fields.
    Ls_input_fields-ref_guid    = lv_item_guid.
    ls_input_fields-ref_kind    = 'B'.
    ls_input_fields-objectname  = 'PRIDOC'.
    *ls_input_fields-logical_key = '0001'.
    ls_input_fields-field_names = lt_input_field_names.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    CLEAR ls_input_fields.
    CLEAR ls_Price_agreement.
    Clear ls_cond.
    I kept this under code. loop, for item records.....
    Though the internal table lt_price_doc. is holding all the records, it is updating only one record. can you any one pls guide me ,

    This example works fine for me. Modify it according to your needs...
    Price
                  IF it_item-value IS NOT INITIAL.
                    ls_cond-kschl = 'PR00'. " add price
                    ls_cond-kbetr = it_item-value.
                    ls_cond-waers = st_head-currency.
                    INSERT ls_cond INTO TABLE ls_pridoc_com-cond_add.   
                    index_2 = 1.
                    CLEAR: ls_cond.
                  ENDIF.
    Discount
                  IF it_item-discount IS NOT INITIAL.
                    ls_cond-kschl = 'ZPPP'. " add discount
                    wa_procent_calc = it_item-discount * 10.
                    ls_cond-kbetr = wa_procent_calc."it_item-discount.
                    ls_cond-waers = '%'."st_head-currency.
                    INSERT ls_cond INTO TABLE ls_pridoc_com-cond_add.   
                    index_2 = 1.
                    CLEAR: ls_cond, wa_procent_calc.
                  ENDIF.
                  IF index_2 = 1.
                    ls_pridoc_com-ref_handle = counter.
                    ls_pridoc_com-ref_kind = 'B'.
                    INSERT ls_pridoc_com INTO TABLE gt_pridoc_com.
                    CLEAR: index_2,ls_pridoc_com.
                  ENDIF.

  • How to update the pricing conditions in Products.

    Hi All,
    I have created a Product Using  Function Modules. Now i need to update the Pricing Conditions into it. Can anyone suggest me with  the exact Function Module and Tables that are used to Update the pricing conditions?Can anyone provide me with a sample report program written to update the pricing conditions.?
    Points will be awarded for useful answers.
    Thanks In Advance,
    Shwetha Korlepara.

    Hi,
    Can you check if these FM's are useful:
    CRM_MKTPL_GET_BP_SALES_AREAS
    CRM_MKTPL_AL_FILL_PRODUCT
    Hope this helps.
    Regards,
    Anup

  • BAPI_SCHEDULE_MAINTAIN - Scheduling Agreement  (Deleting Item Condition)

    Dear Friends,
    My requirements is change or create the Scheduling Agreement - Schedule Lines (ME32L). I am using BAPI -->
    BAPI_SCHEDULE_MAINTAIN
    Its updating correctly, but automatically the item condition price details are deleted.
    1st time i am facing this issue.
    kindly help to rectify this issue. I am waiting for your valuable response.
    FYI - this is my code
            t_schedule-item_no    = t_alv_output-it_no.
            t_schedule-sched_line = t_alv_output-sh_no.
            WRITE t_alv_output-de_dt TO t_schedule-delivery_date.
            t_schedule-quantity      = t_alv_output-de_qt.
            t_schedule-stat_date = t_eket_qty-slfdt.
            APPEND t_schedule.
            t_schedulex-item_no       = t_alv_output-it_no.
            t_schedulex-sched_line    = t_alv_output-sh_no.
            t_schedulex-sched_linex   = lv_x.
            t_schedulex-delivery_date = lv_x.
            t_schedulex-stat_date     = lv_x.
            t_schedulex-quantity      = lv_x.
            APPEND t_schedulex.
          CALL FUNCTION 'BAPI_SCHEDULE_MAINTAIN'
            EXPORTING
              purchasingdocument = t_alv_output_head-po_no
            TABLES
              schedule           = t_schedule
              schedulex          = t_schedulex
              return             = t_return.
    I am also tried
    BAPI_SAG_CHANGE
    . this also updating the Schedule Lines. but deleting the item condition records.
    Thanks & Regards,
    Durai V

    Kindly check notes 1034912 and 1046851
    Regards
    JP Milton

  • 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

  • Return Sales order - update of Item category change

    Hi
    We are creating the Return Sales order with respective original sales order.
    After copying the line item details in to return sales order, we are not able to change item category to another.  Since item category is in display mode(grayed out).
    We tried with
    1.Transaction varant, it is not helpful.
    2.Maintained the item category which is required in item category determination(Manual entries)
    Though we are able to change the item catgory in the sales order through some user exit, price condition are in active status. we are doing price update, but still condition types are still in-active.
    Please help, how to change the item cateogry and to redetermine the price based on the item category in sales order.
    Thanks & Regards,
    Rajesh.

    Then how do you settle it with the customer? He has still paid for the original materials and has returned some or all of them. He is still going to be invoiced for the full quantity. There should be some way to either replace the materials or give him a credit memo
    but coming to Gunda's query, the only way I see to map this is to create a different order type ZRE which is a copy of RE and item category ZREN which is a copy of REN. In ZREN, turn on Pricing. Maintain copy controls from OR to ZRE and keep the pricing condition type Manual. Then whenever the business decides not to give the customer a refund, go to the item conditions, set the pricing condition value to 0 and save the order

  • 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,

  • Program to update BOM by CSAP_MAT_BOM_CREATE as error KEY_INCOMPLETE coming

    Hi to all,
    Can any one provide me sample program to update BOM via Function Module CSAP_MAT_BOM_CREATE.
    As i already have created the program , but run time error is coming KEY_INCOMPLETE for CSAP_MAT_BOM_CREATE.
    as i have already search the SDN , but cant get any specific answer for that.
    Note: itab_bom_header and itab_bom_item_details are of same line type as
      i_stko and t_stpo  with data.     
    DATA: wa_bom_header  TYPE     zia_str_bom_header,
          wa_itab_bom_item_details TYPE zia_str_bom_item_details.
    IF  itab_bom_header[] IS  NOT INITIAL .
      READ TABLE  itab_bom_header INTO wa_bom_header INDEX 1 .
    ENDIF.
    *---- BOM header data structure
    DATA: BEGIN OF tstko OCCURS 0.
            INCLUDE STRUCTURE stko_api01.
    DATA: END OF tstko.
    DATA: wa_tstko  LIKE LINE OF tstko.
    *---- BOM items table
    DATA: BEGIN OF tstpo OCCURS 0.
            INCLUDE STRUCTURE stpo_api01.
    DATA: END OF tstpo.
    DATA: wa_tstpo LIKE LINE OF tstpo.
    **---- Object dependencies table
    Basis data
    *data: begin of tdep_data occurs 0.
    *include structure csdep_dat.
    *data: end of tdep_data.
    Description
    *data: begin of tdep_descr occurs 0.
    *include structure csdep_desc.
    *data: end of tdep_descr.
    Source
    *data: begin of tdep_source occurs 0.
    *include structure csdep_sorc.
    *data: end of tdep_source.
    Sequence
    *data: begin of tdep_order occurs 0.
    *include structure csdep_ord.
    *data: end of tdep_order.
    Documentation
    *data: begin of tdep_doc occurs 0.
    *include structure csdep_doc.
    *data: end of tdep_doc.
    CALL FUNCTION 'CALO_INIT_API'
    EXPORTING
      FLAG_DB_LOG_ON                 = 'X'
      FLAG_MSG_ON                    = 'X'
      FLAG_API_API_CALL_ON           = ' '
      FLAG_COLLECT_MSG_ON            = ' '
      EXTERNAL_LOG_NO                = 'API'
      DEL_LOG_AFTER_DAYS             = '10'
      DATA_RESET_SIGN                = '!'
    EXCEPTIONS
       LOG_OBJECT_NOT_FOUND           = 1
       LOG_SUB_OBJECT_NOT_FOUND       = 2
       OTHERS                         = 3
    LOOP AT itab_bom_header INTO wa_bom_header.
    wa_tstko-BASE_QUAN =  wa_bom_header-base_qty.
    wa_tstko-BASE_UNIT  =  wa_bom_header-BASE_UOM.
    wa_tstko-BOM_STATUS  = wa_bom_header-BOM_STATUS.
    ENDLOOP.
    LOOP AT  itab_bom_item_details INTO  wa_itab_bom_item_details.
      wa_tstpo-item_categ   = wa_itab_bom_item_details-item_category.
      wa_tstpo-item_no      = wa_itab_bom_item_details-bom_itm_number.
      wa_tstpo-component    = wa_itab_bom_item_details-component.
      wa_tstpo-comp_unit = wa_itab_bom_item_details-uom.
      wa_tstpo-comp_qty = '10'.
      wa_tstpo-valid_from   = wa_itab_bom_item_details-valid_from.
      wa_tstpo-itm_ident    =  wa_itab_bom_item_details-item_id  .
      APPEND wa_tstpo TO tstpo .
    ENDLOOP.
    FM to create BOM
    CALL FUNCTION 'CSAP_MAT_BOM_CREATE'
      EXPORTING
        material               =   wa_bom_header-material
        plant                  =   wa_bom_header-plant
        bom_usage              =   wa_bom_header-bom_usage
        VALID_FROM             =   wa_bom_header-VALID_FROM
      CHANGE_NO                =
      REVISION_LEVEL           =
      i_stko                   =    tstko  " bom header
      FL_NO_CHANGE_DOC         = ' '
      FL_COMMIT_AND_WAIT       = ' '
      FL_CAD                   = ' '
      fl_default_values        = 'X'
    IMPORTING
    fl_warning               =  fl_warning
    bom_no                   =  bom_no
    TABLES
    t_stpo                    =  tstpo   " bom item
      T_DEP_DATA               = tdep_data
      T_DEP_DESCR              = tdep_descr
      T_DEP_ORDER              = tdep_source
      T_DEP_SOURCE             = tdep_order
    T_DEP_DOC                 =  tdep_doc
      T_LTX_LINE               =
      T_STPU                   =
    EXCEPTIONS
    error                    = 1
      OTHERS                   = 2
    IF sy-subrc <> 1.
      WRITE 'error'.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF fl_warning EQ 'X'.
      WRITE 'done'.
    ENDIF.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT          =
    IMPORTING
      RETURN        =
    please can any one provide me the solution for that.
    i shall be thankfull to you for this.
    Regards
    Pavneet Rana
    Edited by: pavneet rana on Aug 18, 2011 3:01 PM

    Thanks for reply,
    i have debug my program and found that run time error is coming at GET_MAST function module.
    but  i have already checked that     MATNR and STLNR  is already filled before reaching to that FM.
    GET_MAST
    IF NOT SET IS INITIAL.
          IF     WA-MATNR IS INITIAL
             AND WA-STLNR IS INITIAL.
             RAISE KEY_INCOMPLETE.
          ENDIF.
          IF     WA-MATNR <> SPACE
             AND WA-STLNR <> SPACE.
             RAISE KEY_INVALID.
          ENDIF.
    please can any one provide me the solution for that.
    Regards
    Pavneet Rana

  • Condition type in PO header can be divided in each PO item condition

    Dear all,
    I would like to do as below:
    In PO:
    Item detail:
                       Material A, Qty = 200
                       Material B, Qty = 300
    Header:
        Condition tab: Condition type = Z001 (Freight charge) = 15,000 $
    After that the system auto calculate and update the condition type in Item Condition:
    - Material A, Condition type = Z001 (Freight charge) = 15,000 / (200+300) * 200 = 6,000 $
    - Material B, Condition type = Z001 (Freight charge) = 15,000 / (200+300) * 300 = 9,000 $
    Can I do that?
    How I can configure the system?
    Thanks a lot for your support!
    Rgds,
    CH

    yes, this can be done.
    http://help.sap.com/erp2005_ehp_05/helpdata/en/dd/56177a545a11d1a7020000e829fd11/frameset.htm

  • PO item condition amount change in ME28

    Hi,
    The question is whether ME28 will update the PO item condition amount automatically when release PO ?
    If so, how ME28 determine the PO item condition amount to change.
    Please teach me if you have any idea.
    Thanks a lot !
    Regards,

    Hi
    If GRN or Invoice or Down Payment you cannot change the delivery condition.
    If you are not able to change the Basic Price check that any condition are maitian (MEK1) and also check that in customization the price should be picked ony from condition then you cannot change the price in PO.
    Hope this might solve your issue
    Regards
    Davey

  • How to fetch the correct netprice based on contract item conditions

    Hi,
    When you display a contract using ME33K and you click on a item and view its conditions(shift+F6), there might be 2 validity periods for a given item.
    and each period will have different netprice in it.
    Let me describe the same.
    Suppose the PO creation date is 04.07.2007
    The conditions for an item in a contract for the PO are as follows;
    1. Validity from 04.07.2007 validity to 04.07.2007 Netprice = 100.00
    2. Validity from 05.07.2007 validity to 31.12.9999 Netprice = 200.00
    We need to always fetch the net price from the validity period which always matches with the PO creation date. here the value 100.00 should be the correct netpr as the PO creation date matches with the first validity period.
    But the program is fetching the netprice 200.000 which belongs to the second validity period. That is because the select statement which fetches the data for contracts collects on the basis of EKKO-kdate and ekko-kdtab.The fields kdate and kdtab retrieves the validity period of the contract which is from 04.07.2007 to 31.072007. This data is then used to retrieve the netpr data from EKPO and it fetched 200.00 as it retrieves the net price of current data in contract validity and not with respect to PO creation date.
    This data is then used to fetch the get the netpr data from EKPO.
    what we need is the netprice for that validity period of item(Conditions) that matches with the PO creation date..
    Now I have the internal table which is having data retrieved from Ekko and EKPO table.
    Now how do I retrive the correct price by using the condition tables KONV and KONP.
    Can you pls give the code snippet..
    Thanks in advance.

    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

  • Trans ME31K:Defaulting item condition validity to contract validity date

    Hello Experts,
    I have a request from my client which is as follows :
    On transaction ME31K (Create Contract), at header I can enter a start date and an end date for the validity of my contract.
    Program name : SAPMM06E
    FIELD-NAMES : EKKO-KDATB & EKKO-KDATE
    The users want the same date range to appear at item level for the conditions :
    Select a new created Item > Conditions.
    Program name :SAPMV13A
    FIELD NAMES : RV13A-DATAB & RV13A-DATBI
    Because, the transaction is changing the program name, it is very difficult for us to replicate the dates at the item's condition level.
    Can you please suggest any idea to implement this solution ?
    Thanks & Regards,
    Mahesh
    Edited by: Maheshsingh Sharma Jhoomuck on Oct 5, 2009 4:52 PM
    Edited by: Maheshsingh Sharma Jhoomuck on Oct 5, 2009 4:53 PM

    Hi raghavendra sai !
    Thanks for the answer.
    But actually, my client wants  'from date' of the items conditions to be defaulted to the date that he indicated on the contract's validity date at header (from date - EKKO-KDATB).
    A contract can be created with a validity interval that starts from a past date.

Maybe you are looking for

  • Lost disclosure triangles in coveflow and list views in home folder

    I ran the 'chflags nohidden ~/Library' command in terminal to reveal the user library which worked just fine. The problem is that I have lost the disclosure triangles in my Home folder view in List and Coverflow views. When I click home in the sideba

  • Bridge won't open since Mountain Lion upgrade.

    Why won't Adobe Bridge open since Mountain Lion upgrade? I'm running CS4. PS works. Help.

  • How to make dropdown menu selection create more text fields?

    I did some searching and am unable to find an answer for this. It could be because I don't know the name of what I'm trying to do (I'm a total LiveCycle Designer noob). I tried to find guides but they seem to be for newer versions of Designer (I'm us

  • How to determine Quant when posting change?

    Dear Expert, I am trying to Post Change using FM L_TO_CREATE_POSTING_CHANGE (LT05), but I have no idea about the table parameter: T_LUBQU,  the most confused thing is the field LQNUM, I know that it is Quant, but can any1 tell me how I can get the pr

  • Having to keep reinstall printer for HP LaserJet 1536dnk

    I just got this printer and it installed fine on my Windows vista PC.  But I noticed that after the computer reboots I am unable to print.  The print job just "hangs" and the que says waiting.  If I uninstall the printer, and then have the computer r