Outline order - Using aliases to assign order

Is it possible to sort the members in an outline on the aliases?For example:ID- E-12345Alias - Smith,Bob_12345I'd like to sort the members of this dimension alphabetically on the aliases.There doesn't seem to be a way to do this in the outline...The sort children ascending or descending only appears to work off of the ID...Any suggestions would be appreciated!Thanks,Lisa

There are a number of ways to accomplish this, none of them extremely simple. 1. You can use the Essbase API and write a program that reads the outline and your input file and have it determine where to put in new members or 2.Have your source system sort the dimension build file in the order you want. Then create two dimension build rules both which have remove unspecified members checked. Create a second load file that has an odd member like zzzzz. Using incremental build methods in Esscmd, load your one member name file, it will remove all of the other members, then load your normal file (make sure you do not tell it to sort), then do the endincrestructer.Glenn S. Narratus Solutions

Similar Messages

  • Internal orders used in account assignment

    Hi,
    Pl let me know about internal orders used in account assignment. How it works?
    Tx
    Uts

    Hi,
    Posting to Cost Center and Internal Order
    If you have added the field Internal order in the Asset Master as a statistical order and you want your depreciation
    posted not only to the cost center but also to this order.
    In transaction OAYR in the IMG you define how depreciation posts to the depreciation posting rules - there is a CO assignment box where you have to tick both cost centers and internal orders.
    What is internal order? Explain with example and how it is related to cost center.
    An internal order is used to accumulate cost for a specific project or task for a specific time period. An internal order is therefore used for a short period with a specific deadline.
    Your internal order will usually settle to cost centers (and not visa versa) according to the settlement rule in the order setup.
    An internal order can therefore be used to group all the expenses incurred to plan and hold a conference over a 3 month period. The order can be settled on a monthly basis to cost centers. When the conference is finished the order can be settled finally. The cost of the conference will then be spread over 2 or more cost centers, but can be viewed in total on the internal order when needed.
    Internal Orders - It is an instrument used to monitor costs and, in some instances, the revenues of an organization.
    Uses of Internal orders
    Monitoring the costs of short-term jobs
    Monitoring the costs and revenues of a specific service
    On going cost control
    Internal order categories
    Overhead Orders
    Investment Orders
    Accrual Orders
    Orders with revenue
    Cost centers are not for specific job. e.g If you have open Trade-fair / exhibition (1 month period), then to allocate cost, you can use Internal Orders (Say IO) you can post to IO, and from their to various cost centers. If management were to ask you the cost of that exhibition, Internal Order will help you
    Cost center is a responsible center in SAP. It cannot be defined as statistical but in transactions it may become as per other co objects.You will be able to find out the performance of the cost center using activities and plan values with actual value. This is lowest cost object in SAP. This will become a statistical object when you allocate the cost to other higher objects. Cost can be allocated to other cost centers or co objects but not fi objects like GL,assets, inventory etc. can be defaulted in transactions through cost element. It cannot be a cost object for a revenue element, revenues are always taken for other higher CO objects. No budget functionality is available but planning functionality is available and is always measured for a year in business.
    Internal order is the second CO object - which can be defined as statistical or real. You will be able to define Budget and planning figures - more than one year also. Can control the postings of FI through budget controls. You can have the report of Plan vs actual including commitment. Cost cannot be allocated but settled through settlement rules and profiles. The receiver of the values can be any object not like Cost center - can be CO objects and FI objects. Ideal for R&D expenses capitalizations, etc. Status profile is linked to this which controls many individual transactions in each status which is a part of this Internal order. It can also receive postings of activities from Cost center. Settlement profile is an wonderful tool for variety of settlement - needed for FI and CO - legal requirements also and Revenue requirements also for any country.
    All SAP CO orders like Production order, Plant maintenance order, etc will behave like Internal order with more functionalities.
    Internal Order (Definition as per CO): -
    An instrument used to monitor costs and, in some instances, the revenues of an organization.
    Internal orders can be used for the following purposes:
    Monitoring the costs of short-term jobs
    Monitoring the costs and revenues of a specific service
    Ongoing cost control
    Internal orders are divided into the following categories:
    Overhead orders - For short-term monitoring of the indirect costs arising from jobs. They can also be used for continuous monitoring of subareas of indirect costs. Overhead orders can collect plan and actual costs independently of organizational cost center structures and business processes, enabling continuous cost control in the enterprise.
    Investment orders - Monitor investment costs that can be capitalized and settled to fixed assets.
    Accrual orders - Monitor period-based accrual between expenses posted in Financial Accounting and accrual costs in Controlling.
    Orders with revenues - Monitor the costs and revenues arising from activities for partners outside the organization, or from activities not belonging to the core business of the organization.
    Thanks & regards,
    Kiran

  • How to create Purchase Order using  sub-ordinate Purchase order number?

    Hi,
    I m in ETL product have to extract SAP datas into Access.
    I noticed that in the Demo DataBase of OEC Computers,the Purchase Order is created with sub-ordinate purchase order number.But i am trying to create the same in SAP B1 manually,but i can't create child Purchase Order .
    <b>How to create child Purchase Order?</b>
    Please help me to create the same
    regards
    Sooriyakala.P

    Hi,
    I m in ETL product have to extract SAP datas into Access.
    I noticed that in the Demo DataBase of OEC Computers,the Purchase Order is created with sub-ordinate purchase order number.But i am trying to create the same in SAP B1 manually,but i can't create child Purchase Order .
    <b>How to create child Purchase Order?</b>
    Please help me to create the same
    regards
    Sooriyakala.P

  • How do i move objects in an assigned order?

    I need help urgently!
    I have 14 bricks, and want each one to fall down the screen
    in a particular order.
    I'm guessing I'll need to use an array, but I am really new
    to actionscript and need basic instructions on what to do...
    thanks
    (this is my fla so far, the user has to match the puzzle on
    the right as the bricks fall in an assigned order)
    Using Flash MX

    (in order as in.. right after the other or right after they
    land...)
    this is right after the other (with a given time to drop the
    next)
    if they are all seperate boxes, do something like this:
    on the onClipEvent(load), put an order, like drop=1,
    drop=2,drop=3
    onClipEvent(load)
    drop=2
    time=0
    onClipEvent(enterFrame)
    time++
    if(time>drop*12) //12 frames before dropping the second
    one
    **your drop code
    if you want them as duplicated, do this:
    duplicatedmovie=[the duplicate movieclip code]
    duplicatedmovie.drop=1
    and in the movieclip that you are duplicating, add this:
    onClipEvent(load)
    time=0
    onClipEvent(enterFrame)
    time++
    if(time>drop*12) //12 frames before dropping the second
    one
    **your drop code
    basically the same code except that the drop was set in
    different areas.
    I hope it helps, but I'm not sure if it was what you were
    looking for.

  • Create sales order using BAPI

    HI,
    I need to create sales orders using BAPI.
    these sales orders are different sales order type and it need to upload from excel file. anyone send me some sample programs for this one.
    kathir.

    use this code to create salesorder using bapi.
    REPORT z_bapi_salesorder_create.
    Parameters
    Sales document type
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text FOR FIELD p_auart.
    PARAMETERS: p_auart TYPE auart OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Sales organization
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text1 FOR FIELD p_vkorg.
    PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Distribution channel
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text2 FOR FIELD p_vtweg.
    PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Division.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text3 FOR FIELD p_spart.
    PARAMETERS: p_spart TYPE spart OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SKIP 1.
    Sold-to
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text4 FOR FIELD p_sold.
    PARAMETERS: p_sold  TYPE kunnr OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Ship-to
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text5 FOR FIELD p_ship.
    PARAMETERS: p_ship  TYPE kunnr OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SKIP 1.
    Material
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text6 FOR FIELD p_matnr.
    PARAMETERS: p_matnr TYPE matnr   OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Quantity.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text7 FOR FIELD p_menge.
    PARAMETERS: p_menge TYPE kwmeng  OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Plant
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 2(20) v_text9 FOR FIELD p_plant.
    PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    Data declarations.
    DATA: v_vbeln            LIKE vbak-vbeln.
    DATA: header             LIKE bapisdhead1.
    DATA: headerx            LIKE bapisdhead1x.
    DATA: item               LIKE bapisditem  OCCURS 0 WITH HEADER LINE.
    DATA: itemx              LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
    DATA: partner            LIKE bapipartnr  OCCURS 0 WITH HEADER LINE.
    DATA: return             LIKE bapiret2    OCCURS 0 WITH HEADER LINE.
    DATA: lt_schedules_inx   TYPE STANDARD TABLE OF bapischdlx
                             WITH HEADER LINE.
    DATA: lt_schedules_in    TYPE STANDARD TABLE OF bapischdl
                             WITH HEADER LINE.
    Initialization.
    INITIALIZATION.
    v_text   = 'Order type'.
    v_text1  = 'Sales Org'.
    v_text2  = 'Distribution channel'.
    v_text3  = 'Division'.
    v_text4  = 'Sold-to'.
    v_text5  = 'Ship-to'.
    v_text6  = 'Material'.
    v_text7  = 'Quantity'.
    v_text9  = 'Plant'.
    Start-of-selection.
    START-OF-SELECTION.
    Header data
    Sales document type
      header-doc_type = p_auart.
      headerx-doc_type = 'X'.
    Sales organization
      header-sales_org = p_vkorg.
      headerx-sales_org = 'X'.
    Distribution channel
      header-distr_chan  = p_vtweg.
      headerx-distr_chan = 'X'.
    Division
      header-division = p_spart.
      headerx-division = 'X'.
      headerx-updateflag = 'I'.
    Partner data
    Sold to
      partner-partn_role = 'AG'.
      partner-partn_numb = p_sold.
      APPEND partner.
    Ship to
      partner-partn_role = 'WE'.
      partner-partn_numb = p_ship.
      APPEND partner.
    ITEM DATA
      itemx-updateflag = 'I'.
    Line item number.
      item-itm_number = '000010'.
      itemx-itm_number = 'X'.
    Material
      item-material = p_matnr.
      itemx-material = 'X'.
    Plant
      item-plant    = p_plant.
      itemx-plant   = 'X'.
    Quantity
      item-target_qty = p_menge.
      itemx-target_qty = 'X'.
      APPEND item.
      APPEND itemx.
      Fill schedule lines
      lt_schedules_in-itm_number = '000010'.
      lt_schedules_in-sched_line = '0001'.
      lt_schedules_in-req_qty    = p_menge.
      APPEND lt_schedules_in.
      Fill schedule line flags
      lt_schedules_inx-itm_number  = '000010'.
      lt_schedules_inx-sched_line  = '0001'.
      lt_schedules_inx-updateflag  = 'X'.
      lt_schedules_inx-req_qty     = 'X'.
      APPEND lt_schedules_inx.
    Call the BAPI to create the sales order.
      CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
           EXPORTING
                sales_header_in     = header
                sales_header_inx    = headerx
           IMPORTING
                salesdocument_ex    = v_vbeln
           TABLES
                return              = return
                sales_items_in      = item
                sales_items_inx     = itemx
                sales_schedules_in  = lt_schedules_in
                sales_schedules_inx = lt_schedules_inx
                sales_partners      = partner.
    Check the return table.
      LOOP AT return WHERE type = 'E' OR type = 'A'.
        EXIT.
      ENDLOOP.
      IF sy-subrc = 0.
        WRITE: / 'Error in creating document'.
      ELSE.
    Commit the work.
        COMMIT WORK AND WAIT.
        WRITE: / 'Document ', v_vbeln, ' created'.
    bye

  • How to Assigning the number ranges for Purchase Order using EXIT_SAPMM06E_0

    How to Assigning the number ranges for Purchase Order using EXIT_SAPMM06E_001 using Functional Module NUMBER_GET_NEXT explain me ?

    Hi,
    First go thourh the FM import export parameters list.
    Try to create an internal table of type INRI-NRRANGENR for number ranges.
    We can provide the lower and higher values for this table so that what ever PO is created will be with that range.
    Try to create the ncessary ones using this FM.
    In the Exit, EXIT_SAPMM06E_001,
    the Export parameters are-
    EKKO-EBELN- the PO ios created with in that specified range
    Range as INRI-NRRANGENR - Here try to assign the Internal table that was populated in the FM.
    Try to code this in the Include provded and keep Breakpint and check the PO number generated.
    Reply if u need more help on this.
    Reward if helpful.
    Best Wishes,
    Chandralekha

  • How to link Purchase Order using account assignment category "F"* to asset

    Hello,
    I'd like to know how to link Purchase Order, using account assignment category "F" to asset .
    When I enter asset no. in my ANEK table, po no(ebeln) and po item(ebelp) field is blank.
    whether every line item in a Purchase order have differrent asset.
    can anybody give me the link between asset and materal no?
    Regards,
    Rachel

    Hi Rachel,
    Your message is a little bit confusing. There is no link between the asset and material number. If you want to post your purchase order, using account assignment F - that is internal order - you may do it. Futher, you can settle the postings from this order to asset.
    You can read more here:
    http://help.sap.com/saphelp_erp60_sp/helpdata/en/4f/71e7cd448011d189f00000e81ddfac/frameset.htm
    Regards,
    Eli

  • Assigning a Sales Order Number to a Purchase Order

    My company has a requirement that for every purchase order we need to identify what sales order was created to generate the PR.
    I have found that by using the Account Assignment C - Sales Order, this opens the "Account Assignment" Tab and the fields for Sales order, item, and schedule Line.
    I have saved the PO and now am trying to receive the parts into inventory.  When doing so, the inventory needs to post to our inventory GL account, in our case is 135075.  By NOT assigning the GL with the sales order in the PO it doesn't post to this account it posts to a different GL account.
    How do I go about using the "Sales Order" field in the purchase order so I can record which sales order the line item of the PO corresponds to, and when receiving the inventory into stock have it post to the correct GL account?
    Thanks,
    Karen

    The company I work for is a distributor, and doing a Make to Order order type would not be in the best business practice for our company.  We tend to purchase stock for multiple orders and put them in inventory to be sold.  We are looking for a way to "document" what sales order the purchase order line item is being bought for, and sometimes their our multiple lines.
    I understand what you are saying regarding posting to an stock GL vs a consumption GL.
    I am going to research further and see how we can post to a consumption GL and then move the remaining stock over to a stock GL account after we have sold what we have purchased and received.
    I was able to get the receipt posted to the GL 135075 by taking off the "post automatically" indicator in the configuration of the GL account, but this then posed problems when doing other inventory postings such as cycle counting or moving inventory.
    Thank you,
    Karen

  • Problem regarding the creation of sales order using bapi.

    Hai all,
    I am creating sales order using bapi but i am, get following error messages :
    TYPE ID  NUMBER MESSAGE
    E       VP   112       Please enter sold-to party or ship-to party
    E       V4   219       Sales document  was not changed
    I have entered all the parameters.
    my program is as follows :
    *& Report  ZSD_SALES_ORDER
    REPORT  ZSD_SALES_ORDER.
        Tables
    *table definitions
    TABLES:vbak,      "Sales Document: Header Data
            knvv,     "Customer Master Sales Data
            mara,     "General Material Data
            t001l,    "Plants/Branches
            mvke,     "Sales Data for Material
            vbap,     "Sales Document: Item Data
            konv.     "Conditions (Transaction Data)
        Types
    *type for upload data
    TYPES :BEGIN OF ty_upload,
           matnr(20) TYPE c,                  " Old material number
           quantity(20) TYPE c,               " Cumulative order quantity in sales units
    VALUE TYPE       BAPIKWERT1,
          value(20) TYPE c,                  " Condition value
                 value TYPE konv-kwert,                  " Condition value
    END OF ty_upload.
    *type for final output table
    TYPES :BEGIN OF ty_main,
               bismt  TYPE mara-bismt,    "Old material number
               matnr  TYPE vbap-matnr,    "Material Number
               kunnr  TYPE vbak-kunnr,    "customer number
               auart  TYPE vbak-auart,    "Sales Document Type
               vkorg  TYPE vbak-vkorg,    "Sales Organization
               vtweg  TYPE vbak-vtweg,    "Distribution Channel
               spart  TYPE vbak-spart,    "Division
               vbeln  TYPE vbak-vbeln,    "Sales document
               werks  TYPE marc-werks,    " Plant
               lgort  TYPE mard-lgort,    "Storage Location
               posnr  TYPE vbap-posnr,    "Sales Document Item
               parvw  TYPE vbpa-parvw,    "Partner function
               kwmeng TYPE vbap-kwmeng,   "Cumulative order quantity in sales units
               kschl  TYPE konv-kschl,    "Condition type
              kwert  TYPE konv-kwert,    "Condition value
    KWERT TYPE       BAPIKWERT1,
              kwert(20)  TYPE c,    "Condition value
               waers  TYPE konv-waers,    "Currency
         END OF ty_main.
    *type for old material number
    TYPES: BEGIN OF ty_matnr,
           matnr TYPE mara-matnr,
           bismt TYPE mara-bismt,
           END OF ty_matnr.
    *type for order number
    TYPES :BEGIN OF ty_output,
           vbeln  TYPE vbak-vbeln,       "Sales Document
         END OF ty_output.
        Constants                Begin with C_                           *
    CONSTANTS:
    c_zpmu(4) TYPE c VALUE 'ZPMU',
    c_zpmm(4) TYPE c VALUE 'ZPMM'.
    DATA: c_ch(1) TYPE c VALUE 'X'.
        Data                     Begin with W_                           *
    *global data for validations
    DATA: w_count TYPE i,
          w_vkorg TYPE vbak-vkorg,
          w_vtweg TYPE vbak-vtweg,
          w_spart TYPE vbak-spart,
          w_werks TYPE t001l-werks,
          w_check TYPE c,
          w_itemno TYPE posnr_va,
         W_COND TYPE C.
          w_cond(3) TYPE c.
        Internal tables          Begin with IT_                          *
    *internal table definitions
    DATA : it_upload TYPE STANDARD TABLE OF ty_upload ,
           wa_upload TYPE ty_upload.
    DATA : it_main TYPE STANDARD TABLE OF ty_main,
           wa_main TYPE ty_main.
    DATA: it_matnr TYPE STANDARD TABLE OF ty_matnr,
          wa_matnr TYPE ty_matnr.
    DATA : it_output TYPE STANDARD TABLE OF ty_output.
    Internal table for BAPI.
    DATA: it_bapisdhd1  TYPE STANDARD TABLE OF bapisdhd1,        "Sales and Distribution Document Header
          wa_bapisdhd1 TYPE bapisdhd1.
    DATA: it_bapisditm  TYPE STANDARD TABLE OF bapisditm ,       "Sales and Distribution Document Item
          wa_bapisditm TYPE bapisditm.
    DATA: it_bapiparnr  TYPE STANDARD TABLE OF bapiparnr,        "SD Document Partner: WWW
          wa_bapiparnr TYPE bapiparnr.
    DATA: it_bapischdl  TYPE STANDARD TABLE OF bapischdl,       "Schedule Lines
          wa_bapischdl TYPE bapischdl.
    DATA: it_bapicond TYPE STANDARD TABLE OF bapicond,       "Communication Fields for Maintaining Conditions in the Order
          wa_bapicond TYPE bapicond.
    DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2,        "Return Parameter
          wa_bapiret2 TYPE bapiret2.
          Parameters              Begin with PR_                        *
    *selection screen definition
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME .
    PARAMETERS: pr_vkorg TYPE vbak-vkorg OBLIGATORY,
                pr_vtweg TYPE vbak-vtweg  OBLIGATORY,
                pr_spart TYPE vbak-spart  OBLIGATORY,
                pr_kunnr TYPE kna1-kunnr  OBLIGATORY,
                pr_werks TYPE marc-werks  OBLIGATORY,
                pr_lgort TYPE mard-lgort  OBLIGATORY.
    PARAMETERS: pr_auart TYPE vbak-auart OBLIGATORY,
               PR_AUGRU TYPE VBAK-AUGRU OBLIGATORY.
                            pr_augru TYPE vbak-augru.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME.
    PARAMETERS : pr_file TYPE ibipparms-path OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk2.
          At selection-screen                                           *
    AT SELECTION-SCREEN.
      PERFORM f006_validate_vkorg.
      PERFORM f007_validate_vtweg.
      PERFORM f008_validate_spart.
      PERFORM f009_validate_kunnr.
      PERFORM f010_validate_werks.
      PERFORM f011_validate_lgort.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
    *for f4 help----
      PERFORM f003_f4_help.
          S T A R T   O F   S E L E C T I O N                           *
    START-OF-SELECTION.
    *for material ,quantity and value upload
      PERFORM f001_upload_file.
    *get data
      PERFORM  f003_get_data.
    *for check the data
      PERFORM f002_check_data .
      PERFORM f004_process.
    *for posting
      PERFORM f005_posting.
    END-OF-SELECTION.
          E N D       O F   S E L E C T I O N                           *
    *&      Form  f001_upload_file
          upload file
    FORM f001_upload_file .
      DATA : lw_fname TYPE string.
      CLEAR lw_fname.
      lw_fname = pr_file.
      REFRESH it_upload.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = lw_fname
          filetype                = 'ASC'
          has_field_separator     = c_ch
        TABLES
          data_tab                = it_upload
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          OTHERS                  = 17.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      LOOP AT it_upload INTO wa_upload.
       wa_upload-value = ( wa_upload-value ) / 10.
       MODIFY it_upload FROM wa_upload.
      ENDLOOP.
    ENDFORM.                    "F001_UPLOAD_FILE
    *&      Form  f003_f4_help
          f4 help
    FORM f003_f4_help .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = ' '
        IMPORTING
          file_name     = pr_file.
    ENDFORM.                    " f003_f4_help
    *&      Form  check_data
          text
    FORM f002_check_data .
      DATA: lw_lines TYPE i.
      DESCRIBE TABLE it_main LINES lw_lines.
      IF lw_lines LE 0.
        RETURN.
      ENDIF.
      SELECT a~matnr
             a~bismt FROM mara AS a INNER JOIN mvke AS b
                   ON amatnr = bmatnr
                   INTO CORRESPONDING FIELDS OF TABLE it_matnr
                   FOR ALL ENTRIES IN it_main
                   WHERE a~bismt = it_main-bismt.
      IF sy-subrc = 0.
        LOOP AT it_main INTO wa_main.
          CLEAR : wa_matnr.
          READ TABLE it_matnr INTO wa_matnr WITH KEY bismt = wa_main-bismt.
          IF sy-subrc = 0.
            MOVE: wa_matnr-matnr TO wa_main-matnr.
          ENDIF.
          MODIFY it_main FROM wa_main TRANSPORTING matnr WHERE bismt = wa_main-bismt.
        ENDLOOP.
      ELSE.
       MESSAGE e000(zmsd) WITH  text-001.
      ENDIF.
    ENDFORM.                    "CHECK_DATA
    *&      Form  F009_validate_vkorg
          text
    FORM f006_validate_vkorg .
      CLEAR w_vkorg.
      SELECT SINGLE vkorg
          INTO w_vkorg FROM tvko
          WHERE vkorg EQ pr_vkorg.
      IF sy-subrc <> 0.
        MESSAGE e000(zmsd) WITH text-012 pr_vkorg.
      ENDIF.
    ENDFORM.                    " F009_validate_vkorg
    *&      Form  f007_validate_vtweg
          text
    FORM f007_validate_vtweg .
      CLEAR:w_vtweg.
      SELECT SINGLE vtweg
           INTO w_vtweg FROM tvtw
           WHERE vtweg EQ pr_vtweg.
      IF sy-subrc <> 0.
        MESSAGE e089(zmsd).
      ENDIF.
    ENDFORM.                    " f007_validate_vtweg
    *&      Form  f008_validate_spart
          text
    FORM f008_validate_spart .
      CLEAR:w_spart.
      SELECT SINGLE spart
            INTO w_spart FROM tspa
            WHERE spart EQ pr_spart.
      IF sy-subrc <> 0.
        MESSAGE e087(zmsd).
      ENDIF.
    ENDFORM.                    " f008_validate_spart
    *&      Form  F010_validate_kunnr
          text
    FORM f009_validate_kunnr .
      DATA: l_kunnr TYPE kunnr.
      CLEAR: w_vkorg, w_vtweg,w_spart.
      SELECT  SINGLE  kunnr FROM  knvv
             INTO l_kunnr
             WHERE  kunnr  = pr_kunnr
             AND    vkorg  = pr_vkorg
             AND    vtweg  = pr_vtweg
             AND    spart  = pr_spart.
      IF sy-subrc <> 0.
       MESSAGE e000(zmsd) WITH text-010 pr_kunnr text-011 pr_vkorg  .
      ENDIF.
    ENDFORM.                    " F010_validate_kunnr
    *&      Form  f010_validate_werks
          text
    FORM f010_validate_werks .
      CLEAR:w_werks.
      SELECT SINGLE werks
            INTO w_werks FROM t001w
            WHERE werks EQ pr_werks.
      IF sy-subrc <> 0.
        MESSAGE e088(zmsd).
      ENDIF.
    ENDFORM.                    " f010_validate_werks
    *&      Form  F011_validate_lgort
          text
    FORM f011_validate_lgort .
      CLEAR:w_werks .
      SELECT   SINGLE werks  FROM  t001l
             INTO w_werks
             WHERE  werks  = pr_werks
             AND    lgort  = pr_lgort.
      IF sy-subrc <> 0.
        MESSAGE e000(zmsd) WITH text-007 pr_lgort text-008 pr_werks .
      ENDIF.
    ENDFORM.                    " F011_validate_lgort
    *&      Form  f003_get_data
          text
    FORM f003_get_data .
      CLEAR wa_main.
      REFRESH it_main.
      LOOP AT it_upload INTO wa_upload.
        CLEAR : wa_main.
        MOVE: wa_upload-matnr     TO  wa_main-bismt,
              wa_upload-quantity  TO  wa_main-kwmeng,
              wa_upload-value     TO  wa_main-kwert,
              pr_vkorg            TO  wa_main-vkorg,
              pr_vtweg            TO  wa_main-vtweg,
              pr_spart            TO  wa_main-spart,
              pr_kunnr            TO  wa_main-kunnr,
              pr_werks            TO  wa_main-werks,
              pr_lgort            TO  wa_main-lgort.
        APPEND wa_main TO it_main.
      ENDLOOP.
    ENDFORM.                    " f003_get_data
    *&      Form  f004_process
          text
    FORM f004_process .
    CLEAR w_check.
    LOOP AT it_main INTO wa_main.
       IF wa_main-matnr = ''.
         WRITE:/ text-006,
                     wa_main-bismt.
         w_check = 1.
       ENDIF.
       IF wa_main-kwmeng = 0.
         WRITE:/ text-005,
                 wa_main-bismt.
         w_check = 1.
       ENDIF.
       IF    pr_auart <> 'ZM01'.
         IF wa_main-kwert IS INITIAL.
           WRITE:/ text-004,
                    wa_main-bismt.
           w_check = 1.
         ENDIF.
       ENDIF.
    ENDLOOP.
    ENDFORM.                    " f004_process
    *&      Form  f005_posting
          text
    FORM f005_posting .
      CLEAR: w_itemno,
             w_cond.
      w_itemno = 10.
      w_cond = 1.
    IF w_check = '' OR w_check = 1.
      wa_bapisdhd1-doc_type = pr_auart.
      wa_bapisdhd1-ord_reason = pr_augru.
      LOOP AT it_main INTO wa_main.
        IF w_cond = 1.
          CLEAR: it_bapiret2,
                 it_bapisditm,
                 it_bapiparnr,
                 it_bapischdl,
                 it_bapicond.
          REFRESH:it_bapiret2,
                  it_bapisditm,
                  it_bapiparnr,
                  it_bapischdl,
                  it_bapicond.
          MOVE: wa_main-vkorg TO wa_bapisdhd1-sales_org,
                wa_main-vtweg TO wa_bapisdhd1-distr_chan,
                wa_main-spart TO wa_bapisdhd1-division.
          wa_bapisdhd1-wbs_eleM = 'Y561.1'.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
            EXPORTING
              INPUT         = pr_kunnr
           IMPORTING
             OUTPUT        = pr_kunnr.
          wa_bapisdhd1-PURCH_NO_S = pr_kunnr.
          wa_bapisdhd1-PURCH_NO_C = pr_kunnr.
        ENDIF.
        MOVE: w_itemno TO wa_bapisditm-itm_number,
               wa_main-matnr TO wa_bapisditm-material,
              wa_main-BISMT TO wa_bapisditm-material,
              wa_main-werks TO wa_bapisditm-plant,
              wa_main-lgort TO wa_bapisditm-store_loc.
                           wa_bapisditm-target_qty = '10'.
        wa_bapisditm-PURCH_NO_S = pr_kunnr.
        wa_bapisditm-PURCH_NO_C = pr_kunnr.
        APPEND wa_bapisditm TO it_bapisditm.
        IF w_cond = 1.
          wa_bapiparnr-partn_numb = pr_kunnr.
          wa_bapiparnr-itm_number = 10.
            wa_bapiparnr-partn_role = 'SP'.
          APPEND wa_bapiparnr TO it_bapiparnr.
          wa_bapiparnr-partn_role = 'AG'.
          APPEND wa_bapiparnr TO it_bapiparnr.
          CLEAR wa_bapiparnr-partn_role.
                   wa_bapiparnr-partn_numb = pr_kunnr.
          wa_bapiparnr-partn_role = 'RE'.
          APPEND wa_bapiparnr TO it_bapiparnr.
          CLEAR wa_bapiparnr-partn_role.
                   wa_bapiparnr-partn_numb = pr_kunnr.
          wa_bapiparnr-partn_role = 'RG'.
          APPEND wa_bapiparnr TO it_bapiparnr.
          CLEAR wa_bapiparnr-partn_role.
                   wa_bapiparnr-partn_numb = pr_kunnr.
          wa_bapiparnr-partn_role = 'WE'.
          APPEND wa_bapiparnr TO it_bapiparnr.
        ENDIF.
        wa_bapischdl-itm_number = w_itemno.
        wa_bapischdl-req_qty    = wa_main-kwmeng.
         wa_bapischdl-PURCH_NO_S = pr_kunnr.
        APPEND wa_bapischdl TO it_bapischdl.
        wa_bapicond-itm_number = w_itemno.
        wa_bapicond-cond_type  = 'ZECL'.
         IF    ( wa_bapisdhd1-doc_type = 'ZPMU' ) OR ( wa_bapisdhd1-doc_type = 'ZPMM' ).
           wa_bapicond-cond_type  = 'ZVAL'.
         ELSE.
           wa_bapicond-cond_type  = 'ZMRP'.       "+PK12122006
         ENDIF.
        wa_bapicond-cond_value = wa_main-kwert.
        APPEND wa_bapicond TO it_bapicond.
        w_itemno = w_itemno + 10.
        w_cond   = w_cond + 1.
      ENDLOOP.
      data : SALESDOCUMENTIN like BAPIVBELN-VBELN.
      CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
        EXPORTING
          order_header_in     = wa_bapisdhd1
        IMPORTING
          salesdocument       = SALESDOCUMENTIN
        TABLES
          return              = it_bapiret2
          order_items_in      = it_bapisditm
          order_partners      = it_bapiparnr
          order_schedules_in  = it_bapischdl
          order_conditions_in = it_bapicond.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = c_ch.
    ENDIF.
      LOOP AT it_bapiret2 INTO wa_bapiret2.
        DATA : w_err(100) TYPE c,
        w_matnr TYPE matnr.
        IF wa_bapiret2-type = 'E' AND wa_bapiret2-id = 'V1' AND wa_bapiret2-number = 392.
          UNPACK wa_bapiret2-message_v1 TO w_matnr.
          READ TABLE it_matnr INTO wa_matnr WITH KEY matnr = w_matnr.
          IF sy-subrc EQ 0.
            CONCATENATE text-013 wa_matnr-bismt INTO w_err SEPARATED BY space.
            MESSAGE w_err TYPE 'S'.
          ENDIF.
        ENDIF.
        IF WA_BAPIRET2-TYPE = 'S'.  " Comment
          WRITE: 40 TEXT-009, WA_BAPIRET2-MESSAGE_V2+0(10).
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " f005_posting
    I have given all the necessary parameters. it is telling that error is in parameter
    sales_header_in.
    I have checked it.
    i have assigned purch_no_s and purch_no_c of the structure BAPISDHD1(ORDER_HEADER_IN)
    in the bapi with customer number.
    and also i have assigned the partnumber of the structure BAPIPARNR ORDER_PARTNERS
    in the bapi with customer number.
    but still , it is diplaying the error message, please enter the sold to or ship to party number.
    how to resolve this error.
    this is urgent requirement.
    points will be awarded.
    thanking u in advance,
    a.srinivas.

    Hi,
    Did u have a look at the standard programs which make use of BAPI_SALESORDER_CREATEFROMDAT1
    Heres a list...
    LWSSOU08                     
    MV45WF0S                     
    MWWMJF21_BAPI_SALESORDER_CREAT
    RBUS2032                    
    Regards,
    Tanveer.
    <b>Please mark helpful answers</b>

  • Creating service order using BAPI_BUSPROCESSND_CREATEMULTI

    Hi Experts,
    I have a requirement to create a Service order using a BAPI.
    I'm trying to use the BAPI BAPI_BUSPROCESSND_CREATEMULTI. I found some code related to this BAPI on this forum and and I've written my code based on that and while executing it i'm getting a short dump. Could anyone please help me figure out what the problem is.
    My code is as follows:
    data: lv_header_guid type guid_32.
    data: begin of lit_header occurs 0,
          include type BAPIBUS20001_HEADER_INS,
          end of lit_header.
    data: wa_header type BAPIBUS20001_HEADER_INS.
    data: begin of lit_inputfields occurs 0,
          include type BAPIBUS20001_INPUT_FIELDS,
          end of lit_inputfields.
    data: wa_inputfields type BAPIBUS20001_INPUT_FIELDS.
    data: begin of lit_partner occurs 0,
          include type BAPIBUS20001_PARTNER_INS,
          end of lit_partner.
    data: wa_partner type BAPIBUS20001_PARTNER_INS.
    Create Contract header guid
      CALL FUNCTION 'GUID_CREATE'
        IMPORTING
          ev_guid_32 = lv_header_guid.
    Fill orderadm_h
      wa_header-guid         = lv_header_guid.
      wa_header-process_type = 'YSC'.
      APPEND wa_header TO lit_header.
    Fill input fields
      MOVE: lv_header_guid  TO wa_inputfields-ref_guid,
            'A'             TO wa_inputfields-ref_kind,
            '0001'         TO wa_partner-ref_partner_handle,
            'ORDERADM_H'    TO wa_inputfields-objectname,
            'PROCESS_TYPE'  TO wa_inputfields-fieldname.
      APPEND wa_inputfields TO lit_inputfields.
      CLEAR wa_inputfields.
    Fill PARTNER DETAILS
    Sold to Party
      MOVE: lv_header_guid TO wa_partner-ref_guid,
            'A'            TO wa_partner-ref_kind,
            '0001'         TO wa_partner-ref_partner_handle,
            'CRM000'         TO wa_partner-partner_fct,
            '5000000288'    TO wa_partner-partner_no,
            'BP'           TO wa_partner-no_type,
            'BP'           TO wa_partner-display_type,
            'X'        TO wa_partner-mainpartner.
      APPEND wa_partner TO lit_partner.
      CLEAR wa_partner.
    Fill input fields
      MOVE: lv_header_guid TO wa_inputfields-ref_guid,
            'A'      TO wa_inputfields-ref_kind,
            '0001'         TO wa_inputfields-logical_key,
            'PARTNER'     TO wa_inputfields-objectname.
      MOVE  'PARTNER_FCT' TO wa_inputfields-fieldname.
      APPEND wa_inputfields TO lit_inputfields.
      MOVE  'PARTNER_NO' TO wa_inputfields-fieldname.
      APPEND wa_inputfields TO lit_inputfields.
      MOVE  'NO_TYPE' TO wa_inputfields-fieldname.
      APPEND wa_inputfields TO lit_inputfields.
      MOVE  'DISPLAY_TYPE' TO wa_inputfields-fieldname.
      APPEND wa_inputfields TO lit_inputfields.
      CLEAR wa_inputfields.
      CALL FUNCTION 'BAPI_BUSPROCESSND_CREATEMULTI'
        TABLES
          HEADER                  = lit_header
        ITEM                    =
        ACTIVITY                =
        SALES                   =
         PARTNER                 =  lit_partner
        ORGANISATION            =
        SHIPPING                =
        APPOINTMENT             =
        TEXT                    =
        SERVICE_OS              =
        STATUS                  =
         INPUT_FIELDS            =  lit_inputfields
        CREATED_PROCESS         =
        RETURN                  =
        LEAD                    =
        OPPORTUNITY             =
        PRODUCT                 =
        SCHEDULELINE            =
        CUSTOMER_HEAD           =
        CUSTOMER_ITEM           =
        PRICING                 =
        PRICING_ITEM            =
        CONDITION_CREATE        =
        BILLING                 =
        CONFIG_CFG              =
        CONFIG_BLB              =
        CONFIG_INS              =
        CONFIG_PRT              =
        CONFIG_VAL              =
        CONFIG_VK               =
        CONFIG_REF              =
        ADDRESS                 =
        BILLPLAN                =
        BILLPLAN_DATE           =
        EXTENSIONIN             =
        DOCUMENT_FLOW           =
        BATCH                   =
        PRICING_AGR_CRM         =
        FINPROD_ITEM            =
        CANCEL                  =
        CANCEL_IR               =
        PRODUCT_LIST            =
        PRODUCTS                =
        OBJECTS                 =
        PAYPLAN                 =
        PAYPLAN_DATE            =
        CONFIG_FILTER_CFG       =
        CONFIG_FILTER_INS       =
        CONFIG_FILTER_PRT       =
        CONFIG_FILTER_VAL       =
        ACTIVITY_I              =
        EXT_REF                 =
    ENDFUNCTION.
    I'm getting the following dump.
    Runtime Errors         ITAB_ILLEGAL_COMPONENT
    Date and Time          07.09.2006 21:29:03
    Short dump has not been completely stored (too big)
    Short text
    Invalid line component &V2 in "... KEY k1 = v1 ... kn = vn".
    Error analysis
    When the ABAP/4 program "SAPLCRM_BUSPROCESSND_BAPI" attempted to process the
    internal table "HEADER[]"
    with "... KEY k1 = v1 ... kn = vn", a component "HANDLE " was specified
    dynamically as the contents
    of the field "LV_STR_HANDLE". However, the line type "u" of the internal table
    "HEADER[]"
    contains no component "HANDLE ".
    |                                                                         -
    Information on where terminated
    Termination occurred in the ABAP program "SAPLCRM_BUSPROCESSND_BAPI" - in
    "SET_RETURN_VALUES".
    The main program was "RS_TESTFRAME_CALL ".
    In the source code you have the termination point in line 36
    of the (Include) program "LCRM_BUSPROCESSND_BAPIF80".
    Source Code Extract
    Line
    SourceCde
    6
    7
          text
    8
    9
         -->P_LT_ORDERADM_H_COM  text
    10
         -->P_LT_ORDERADM_I_COM  text
    11
         <--P_HEADER  text
    12
         <--P_ITEM  text
    13
    14
    form set_return_values  tables  header structure BAPIBUS20001_HEADER_INS
    15
    item structure BAPIBUS20001_item
    16
    using   p_lt_orderadm_h_com type any table
    17
    p_lt_orderadm_i_com  type any table
    18
    19
    20
    data: lv_str_handle type fieldname,
    21
    lv_str_headerhandle type fieldname,
    22
    lv_str_objectid type fieldname.
    23
    24
    25
    field-symbols: <ls_orderadm_h> type crmt_orderadm_h_com,
    26
    <ls_orderadm_i> type crmt_orderadm_i_com,
    27
    <ls_header> type BAPIBUS20001_HEADER_INS,
    28
    <ls_item> type BAPIBUS20001_item.
    29
    30
    31
    lv_str_handle = 'HANDLE'.
    32
    lv_str_headerhandle = 'HEADER_HANDLE'.
    33
    lv_str_objectid = 'OBJECT_ID'.
    34
    35
    loop at p_lt_orderadm_h_com assigning <ls_orderadm_h>.
    >>>>>
    read table header with key (lv_str_handle) = <ls_orderadm_h>-handle
    37
    (lv_str_objectid) = <ls_orderadm_h>-object_id
    38
    assigning <ls_header>.
    39
    if sy-subrc = 0.
    40
    <ls_header>-guid = <ls_orderadm_h>-guid.
    41
    endif.
    42
    endloop.
    |   43|                                                              
    Could anyone please help me with this.
    Thanks,
    Preethi
    Message was edited by: Preethi Sooth

    First off. Debug.
    Put a break point on the line that is generating the short dump and run your code. The ABAP debugger should display before the dump...now....
    The error specifies that the line type of the table HEADER (which is the internal representation of your lit_header table and has line type BAPIBUS20001_HEADER_INS ) doesn't have a field called HANDLE.
    Check if it does (it should have or something is very wrong, and you should report a bug to SAP).
    Check all runtime variables for that command. See if the table has any values in it. Try using your lit_header table with header-line or not.
    Your in a far better position to determine what the error is then me. Right now, I don't have access to a CRM server.
    From my experience that BAPI is a piece of .... It is hard finding functions in CRM that actually do what you want...properly...Try using CRM_ORDER_CREATE (i think it's called like that). Much better, and if you need RFC capability just write a wrapper RFC.
    Message was edited by: João Sousa

  • Run time error while closing the CRM Order using BAPI

    Hi Experts,
    Need your invaluable suggestions here.Apologies for the lengthy mail, intention is to give clear idea of the issue.
    I am facing an issue while closing the CRM orders. According to our business process, when an issue is solved we will keep the order in resolved status only. We will not directly close the order from the CRM tool, instead we have created a custom program for the same purpose.
    For the custom program we will give input as the order number and execute it, this will close the order.
    Here close the order means assigning it to Close status as well assign the reason code.
    We have created some reason codes for closed status.
    So when the program is run the Order moves from resolved status to closed status along with reason code.
    But of late we are facing some problems with this program, it is giving run time error for some CRM orders.
    Run time error message : The ABAP/4 Open SQL array insert results in duplicate database records.
    The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught in procedure "CRM_SERVICE_OS_UPD_OST_DU" "(FUNCTION)", nor was it propagated by a RAISING clause.
    Please find my code which have used in the custom program
    Closing the resolved SOs in the system
        CALL FUNCTION 'CRM_STATUS_CHANGE_EXTERN_OW'
            EXPORTING
              objnr                     = iv_guid
              user_status          = lc_status_closed
           EXCEPTIONS
             object_not_found          = 1
             status_inconsistent       = 2
             status_not_allowed       = 3
             OTHERS                        = 4.
        IF sy-subrc <> 0.
          WRITE :  'Error at maintaining status'.
        ENDIF.
    Set reason code
    build lt_subject
        ls_subject-ref_guid = iv_guid.
        ls_subject-katalogart = 'A2'.
        ls_subject-codegruppe = 'ZR000003'.
        ls_subject-code       = 'ZR33'.                      " Reason code
        ls_subject-mode       = 'A'.
        APPEND ls_subject TO lt_subject.
    build lt_ossset
        ls_osset-ref_guid        = iv_guid.
        ls_osset-subject_profile = 'ZREASON03'.
        ls_osset-profile_type    = 'G'.
        ls_osset-subject         = lt_subject.
        APPEND ls_osset TO lt_osset.
    build lt_service_os
        ls_service_os-ref_guid  = iv_guid.
        ls_service_os-ref_kind  = 'A'.
        ls_service_os-osset     = lt_osset.
        APPEND ls_service_os TO lt_service_os.
    build lt_input_fields
        REFRESH: lt_input_fields, lt_field_names.
        CLEAR  : ls_input_fields, ls_field_names.
        ls_field_names-fieldname    = 'CODE'.
        APPEND ls_field_names TO lt_field_names.
        ls_field_names-fieldname    = 'CODEGRUPPE'.
        APPEND ls_field_names TO lt_field_names.
        ls_field_names-fieldname    = 'KATALOGART'.
        APPEND ls_field_names TO lt_field_names.
        ls_field_names-fieldname    = 'SERVICE_PROFILE'.
        APPEND ls_field_names TO lt_field_names.
        ls_input_fields-ref_guid    = iv_guid.
        ls_input_fields-ref_kind    = 'A'.
        ls_input_fields-objectname  = 'SERVICE_OS'.
        ls_input_fields-field_names = lt_field_names.
        APPEND ls_input_fields TO lt_input_fields.
         CALL FUNCTION 'CRM_ORDER_MAINTAIN'
          EXPORTING
            it_service_os     = lt_service_os
          CHANGING
            ct_input_fields   = lt_input_fields
          EXCEPTIONS
            error_occurred    = 1
            document_locked   = 2
            no_change_allowed = 3
            no_authority      = 4
            OTHERS            = 5.
        IF sy-subrc <> 0.
          WRITE :  'Error at maintaining reason'.
        ENDIF.
        CALL FUNCTION 'CRM_ORDER_SAVE'
          EXPORTING
            it_objects_to_save   = lt_header_guid
            iv_update_task_local = lv_update_task_local
          IMPORTING
            et_saved_objects     = lt_saved_objects
          EXCEPTIONS
            document_not_saved   = 1
            OTHERS               = 2.
        IF sy-subrc <> 0.
          WRITE : 'Error at saving'.
        ELSE.
          WRITE : 'Successfully Closed'.
          COMMIT WORK AND WAIT.
        ENDIF.
    Run time error is coming at COMMIT WORK AND WAIT statement.
    Please let me know any corrections are required in the above program.
    When I analyzed the run time error I have found that it trying to insert the record in CRMD_SRV_OSSET for that CRM order, but already one record is present in the table for the same CRM order number.
    For most of the CRM orders there is no entry in this table so they are closing successfully but for a few orders for which there is an entry we are getting the above run time error.
    There is nothing wrong with the orders which have an entry already in the table CRMD_SRV_OSSET, I need to close these kind of orders with out run time error.
    Kindly provide your feedback.

    Hi Dinakar,
    You posted this in APO PPDS forum. This question should go to PP forum where someone could answer it.
    Please close this thread and open a new thread in PP forum so that you could get help quickly from the relevant experts.
    Regards - Pawan

  • How to ChangePlantfor each item of Sales order using User Exit SAVE_DOCUMEN

    Hi All,
    I have to change plant for Each line item of sales order using (MV45AFZZ) (USEREXIT_SAVE_DOCUMENT) based on first Schedule line.
    if Confirmed Quantity is Less than Ordered Quantity.
    based on first Schedule line.
    it has to select other Plant and need to populate it in line item of sales order.Please see the below code and let me knoe if any changes required... Thanks in Advance.
    data : wa_vbep like xvbep,
           Lv_matnr type mara-matnr,
           lv_werks type marc-werks.
    DATA: it_vbap TYPE STANDARD TABLE OF vbap,
          wa_vbap TYPE vbap.
    field-symbols: <wa_vbap> type VBAPVB.
    clear wa_vbap.
    *loop at xvbap into wa_vbap.
    loop at xvbap assigning <wa_vbap>.
    read table xvbep into wa_vbep with key posnr = <wa_vbap>-posnr.
    if wa_vbep-ETENR = '0001'.
    if sy-subrc = 0.
    IF wa_VBEP-BMENG LT wa_VBEP-WMENG.
        SELECT SINGLE DWERK
                     INTO lv_werks
                     FROM MVKE WHERE matnr = <wa_VBAP>-matnr
                                and  DWERK ne <wa_VBAP>-werks.
    if not Lv_werks is initial.
    if lv_werks EQ 1033.
    move '1002' to <wa_vbap>-werks.
    if sy-subrc eq 0.
      xvbap-werks =  <wa_vbap>-werks.
    modify xvbap from <wa_vbap> .
    endif.
    elseif lv_werks EQ 1003.
    move '1003' to <wa_vbap>-werks.
    elseif lv_werks EQ 1010.
    move '1010' to <wa_vbap>-werks.
    endif.
    endif.
    endif.
    endif.
    endif.
    endloop.
    endif.
    Regards,
    Sudhakar Reddy.A

    You have to use the form routine "USEREXIT_SAVE_DOCUMENT_PREPARE"
    regards
    Vinod

  • Creating sales order using ' BAPI_SALESORDER_CREATEFROMDAT1'

    Hi ,
    i have a problem in creating sales order using ' BAPI_SALESORDER_CREATEFROMDAT1 '  .
    order number is created and every thing unless the order quantity isn't created for material item .
    my inputs are .
    in "ORDER_HEADER_IN"
    (DOC_TYPE , SALES_ORG , DISTR_CHAN , DIVISION ,SALES_OFF )
    in " ORDER_ITEMS_IN"
    (MATERIAL ,PLANT ,REQ_QTY  )
    in "ORDER_PARTNERS"
    (PARTN_ROLE , PARTN_NUMB)
    so the order created but as i say the the order quqntity isn't created for the material  so the "net value and maertial net valve )
    aren't calcoluted .
    << Moderator message - Everyone's problem is important. But the answers in the forum are provided by volunteers. Please do not ask for help quickly. >>
    waiting .
    thanks for all
    Edited by: Rob Burbank on Jan 7, 2011 4:28 PM

    Hi Mr. Ahmed Tohamy,
    my point is just create a schedule line with each item line. The relevant code we used was (excerpt)
    perform bapi_map_filled using:
          lv_matnr      'MATERIAL'   space
            changing ls_in    ls_inx,
          lv_tax_class1 'TAX_CLASS1' gc_true
            changing ls_in    ls_inx,
          lv_qty        'TARGET_QTY' space
            changing ls_in    ls_inx, "QTY to item line
          lv_qty        'REQ_QTY'    space
            changing ls_schdl ls_schdlx,"QTY to schedule line
          lv_itm_number 'ITM_NUMBER' space
            changing ls_in    ls_dummy,
          lv_itm_number 'ITM_NUMBER' space
            changing ls_schdl ls_dummy,
          lv_ref_doc_ca 'REF_DOC_CA' space
            changing ls_in    ls_inx,
          lv_orderid    'ORDERID'    space
            changing ls_in    ls_inx,
          lv_ref_doc    'REF_DOC'    space
            changing ls_in    ls_inx.
        append:
          ls_in       to pt_order_items_in,
          ls_inx      to pt_order_items_inx,
          ls_schdl    to pt_order_schdl,
          ls_schdlx   to pt_order_schdlx.
    Here the quantity is put to item line and schedule line, we always mark the correspoing X structure fields:
    *&      Form  bapi_map_filled
    *       if the value passed is not initial, it is moved to the field
    *       and the corresponding (BAPI-) X-field is marked
    *       if no x-structure is required, a dummy structure is passed
    *       if p_initial parameter is filled, initial fields will be marked
    *       in x-structure. Purpose: transfer of initial values to BAPI
    form bapi_map_filled using    p_value      type any
                                  p_fieldname  type fieldname
                                  p_initial    type flag
                         changing p_structure  type any
                                  p_structurex type any.
      field-symbols:
        <any> type any,
        <c>   type c.
      check:
         not ( p_value is initial and p_initial is initial ).
      assign:
        component p_fieldname of structure p_structure to <any>,
        component p_fieldname of structure p_structurex to <c>.
      <any> = p_value.
      check <c> is assigned.
      <c> = gc_true.
    endform.                    " bapi_map_filled
    Also, we did something to create conditions (i.e. tax) but I think that was project-specific.
    We used BAPI_SALESORDER_CREATEFROMDAT2, I do not know about BAPI_SALESORDER_CREATEFROMDAT1.
    Regards,
    Clemens

  • Need to find how to relate the purchase order table with account assignment

    i need to reterieve the account assignment from the table bbp_pdacc, what is field or any tables that is between BBP_PDACC and Purchase order number or the purchase order items. I am working on the SRM system

    Jacques-Antoine,
    You can't directly translate a repeating node or element (such as an Item or a Project Task from the Accounting Coding Block of an Item) to a singular node or element.
    The reason is that, though your use case may have the elements assumed to be the same for all items, this isn't necessarily the case, so ByDesign won't assume that you can use that kind of logic.
    The simplest approach would be to do an On-Save at the Root node of the Purchase Order along the following lines:
    this.projecttaskpo = this.Item.GetLast().ItemAccountingCodingBlockDistribution.AccountingCodingBlockAssignment.ProjectTaskKey.TaskID;
    i wouldn't actually recommend this code.
    You'd need validations for IsInitial, IsSet, and those kinds of functions.
    i'd at least use some foreach loop to check that all the accounting coding blocks were for the same task, raise warnings if they weren't, etc.

  • How to delete an operation from order using the bapi

    Can somebody please tell me how to delete an operation from order using the bapi
    BAPI_ALM_ORDER_MAINTAIN.
    Following was the test data for the BAPI.
    000000 OPERATION DELETE 0000040052810070
    000000 SAVE 0000040052810070
    Even I tried entering the operation table. The BAPI control ends fine, but when I check the order using IW32, the operation still exists.
    So, can you please tell me where Iam going wrong.

    Hi Subash Mohanvel,
    Check bapireturn parameter of the bapi BAPI_ALM_ORDER_MAINTAIN after execution of the code , and if there is no error message in the return table then call bapi_Transaction_commit.
    Unless you call this database saving of the records/values will not get reflected in the system.
    Hope that helps.
    Regards
    Kapadia
    ***Assigning points is the way to say thanks in SDN.***

Maybe you are looking for