FM to get the sales order data using GI as input

Hi Friends,
I am looking for a way to read the sales order data  (document no. )using the Goods issue document no as my input.
basically reading the Docflow in the opposite direction i.e GI -> SO .
If you can suggest a FM which can do so it would be really helpful.
Thanks,
Poonam.

Hi Poonam,
Not FM but I can tell you the Std. way.
Go to SE16 --> Table VBFA --> Enter your goods movement document list in field "Follow-on doc." --> In the feild "Prec.doc.categ." --> choose "C Order" --> Execute
Hope it helps,
Regards,
MT

Similar Messages

  • Fetching the sales order data using both system status and user status

    Hi,
    Could any one tell me how to fetch sales orders using both system status and user status.
    My requirement is to fetch sales order data in a report where the user enters the system status and user status in the selection screen fields.
    For example i need sales orders where the system status is I1002 i.e. OPEN and user status is E0002 (status profile CMSCON0) that is In Process
    Early replies are appreciated.
    Thanks
    Tanveer

    Hi,
    The system status and user status are stored in CRM_JCDS & CRM_JEST tables you can get the all the order GUID on particular status further pass the order GUID in table CRMD_ORDERADM_H to get transaction ID.
    Regards,
    Dipesh.

  • How to know the sales order closed using right click menu -Close ???

    I have an sales order with ten item, I have copied the same to delivery and before adding the Delivery I have deleted some items. After adding the Delivery, I manually closed the sales order by using the "right click menu close".
    The Open Quantity of those lines are already closed while i Close it manually.
    Now i need  a report regarding the sales orders which i  have closed manually. Any Options??

    Check the below result
    DocNum     DocDate     CardCode     CardName     Row#     ItemCode     Dscription     Price     Quantity     LineTotal
    2     2012-02-04 00:00:00.000     ED-C-102     AI HUDHA BOOK STALL     2     1010          150.000000     10.000000     1500.000000
    3     2012-02-04 00:00:00.000     ED-C-103     AL AMEEN ENGLISH SCHOOL-MANKADA     2     1011     ZINC ROD HIGH GRADE PURE ZINC 140 X 9 MM     59.790000     10.000000     597.900000
    this is the result i get while i execute your query
    but look at the db result
    DocEntry     LineNum     TargetType     TrgetEntry     LineStatus     ItemCode     Quantity     OpenQty
    1     0     15     2     C     1010     10.000000     0.000000
    2     0     15     3     C     1010     10.000000     0.000000
    2     1     -1     NULL     C     1010     10.000000     0.000000
    3     0     15     4     C     1010     1.000000     0.000000
    3     1     -1     NULL     C     1011     10.000000     0.000000
    3     2     15     4     C     1012     15.000000     0.000000
    3     3     15     4     C     1013     20.000000     0.000000
    4     0     15     5     O     1010     10.000000     5.000000
    See the last line data...it have open quantity of 5 and it also have the target type 15, If I close the sales order with docentry 4 manually using right click, the open quantity will be Zero..
    I need that last line result also as my output..
    Hope you understand my problem.
    Thank You

  • Function module or BAPI to get the sales order details.

    Hi,
    Can any one revert back with the FM or BAPI to get the sales order details.
    I tried using BS01_SALESORDER_GETDETAIL, in my driver program of smartform but when i execute the form using VA03 -> Sales Document -> Issue output to -> Print preview, I am getting the required output.
    if i see the print preview in the overview of the sales order (enter sales order and press enter), the above specified FM is not populating any data.
    Thanks,
    Prathap

    Hi Prathap,
    The above specified FM BAPISDORDER_GETDETAILEDLIST should work. As you need the item conditions,
    Fill the I_BAPI_VIEW with header = 'X', item = 'X' and sdcond = 'X'.
    Fill the SALES_DOCUMENTS-vbeln = sales order number.
    Regards,
    Shylaja

  • Calling VA01 from Report,how to get the Sales Order  No when Back.

    Hi all,
    I have a requirement of calling va01 from the report and have done that using
    did recording ...&
    call transaction va01 using bdcdata.
    but my problem is when back from that trasaction i have to get the sales order that is created . Is it possible to retrieve that value from va01 .i am unable to get . anyone pls share

    Use the addition MESSAGES INTO itab with call transaction va01 using bdcdata.
    Effect of MESSAGES INTO itab:
    Using this addition, all the messages sent during batch input processing are stored in an internal table itab of the type BDCMSGCOLL from the ABAP Dictionary.
    If the call transaction is successful then retrieve the last message from itab and then in any field among MSGV1,MSGV2,MSGV3,MSGV4 of itab u will get the document no.
    And when doing the call transaction pl. choose update mode as 'S' or 'L'.
    Regards,
    Joy.

  • Get the sales order number based on customer number

    HI all,
    how can i get the sales order numbers based on the customer number?
    plz tell me the table names.
    thanks,
    Srini

    hiiiii..
    go to database table VBAK
    where you can find customer id and sales order
    use a select statement in your report program
    and key as kunnr ...
    i hope it does ...the job

  • Use SQL function to get the original order number using the invoice number

    Hi All,
    wondering is someone can help me with this challenge I am having?  Often I need to return the original order numbers that created the resulting invoce.  This is a relatively simple seriese of joins in a query but I am wanting to simplify it using a SQL function that can be referenced each time easily from with in the SELECT statement.  the code i currently have is:
    Use SQL function to get the original order number using the invoice number
    CREATE FUNCTION dbo.fnOrdersThatMakeInvoice(@InvNum int)
    RETURNS nvarchar(200)
    AS
    BEGIN
    DECLARE @OrderList nvarchar(200)
    SET @OrderList = ''
    SELECT @OrderList = @OrderList + (cast(T6.DocNum AS nvarchar(10)) + ' ')
    FROM  OINV AS T1 INNER JOIN
          INV1 AS T2 ON T1.DocEntry = T2.DocEntry INNER JOIN
          DLN1 AS T4 ON T2.BaseEntry = T4.DocEntry AND T2.BaseLine = T4.LineNum INNER JOIN
          RDR1 AS T5 ON T4.BaseEntry = T5.DocEntry AND T4.BaseLine = T5.LineNum INNER JOIN
          ORDR AS T6 ON T5.DocEntry = T6.DocEntry
    WHERE T1.DocNum = @InvNum
    RETURN @OrderList 
    END
    it is run by the following query:
    Select T1.DocNum, dbo.fnOrdersThatMakeInvoice(T1.DocNum)
    From OINV T1
    Where T1.DocNum = 'your invoice number here'
    The issue is that this returns the order number for all of the lines in the invoice.  Only want to see the summary of the order numbers.  ie if 3 orders were used to make a 20 line inovice I only want to see the 3 order numbers retuned in the field.
    If this was a simple reporting SELECT query I would use SELECT DISTINCT.  But I can't do that.
    Any ideas?
    Thanks,
    Mike

    Thanks Gordon,
    I am trying to get away from the massive table access list everytime I write a query where I need to access the original order number of the invoice.  However, I have managed to solve my own problem with a GROUP BY statement!
    Others may be interested so, the code is this:
    CREATE FUNCTION dbo.fnOrdersThatMakeInvoice(@InvNum int)
    RETURNS nvarchar(200)
    AS
    BEGIN
    DECLARE @OrderList nvarchar(200)
    SET @OrderList = ''
    SELECT @OrderList = @OrderList + (cast(T6.DocNum AS nvarchar(10)) + ' ')
    FROM  OINV AS T1 INNER JOIN
          INV1 AS T2 ON T1.DocEntry = T2.DocEntry INNER JOIN
          DLN1 AS T4 ON T2.BaseEntry = T4.DocEntry AND T2.BaseLine = T4.LineNum INNER JOIN
          RDR1 AS T5 ON T4.BaseEntry = T5.DocEntry AND T4.BaseLine = T5.LineNum INNER JOIN
          ORDR AS T6 ON T5.DocEntry = T6.DocEntry
    WHERE T1.DocNum = @InvNum
    GROUP BY T6.DocNum
    RETURN @OrderList 
    END
    and to call it use this:
    Select T1.DocNum, dbo.fnOrdersThatMakeInvoice(T1.DocNum)
    From OINV T1
    Where T1.DocNum = 'your invoice number'

  • Get the Sales Order number from Service Notification

    Hi Experts,
                       Please let me know if there are any BAPI's or standard Function modules to get the Sales order for a given Service Notification number.
    Thanks a lot

    Hi Ashish,
    Hope the listed BAPI's let you solve the issue:
    BAPI_SERVNOT_CLOSE Complete service notification
    BAPI_SERVNOT_CREATE Create service notification
    BAPI_SERVNOT_DEL_DATA Delete Items, Causes, Activities, Tasks, Partners of the service notif.
    BAPI_SERVNOT_GET_DETAIL Get details about a service notification
    BAPI_SERVNOT_MODIFY_DATA Modify a service notification or associated subdata
    BAPI_SERVNOT_POSTPONE Postpone service notification
    BAPI_SERVNOT_PUTINPROGRESS Put in process a service notification
    BAPI_SERVNOT_SAVE Save service notification
    BAPI_SERVICENOTIFICAT_CREATE Create service notification
    BAPI_SERVICENOTIFICAT_GETLIST Select service notifications according to customer or contact person
    BAPI_SERVNOT_CHANGEUSRSTAT Change the user status of a service notification
    Regards,
    Soundarya.

  • Sales Order Upload using IDOC : Batch Input error

    Hi all
    When I am uploading sales order data using <b>idoc</b> method it was giving the below error when  the Items are more than 10,if the items are less than 10 it was creating the sales order successfully.
    <b>Screen 0000 is too large for internal batch input area</b>
    for upload I am using the standard Meassege type and Basic idoc type
    Message type : ORDERS
    Basic idoc type : ORDERS05
    Function Module : idoc_input_orders(ORDE)
    Please help if there is any Idea
    Thanks in Advance
    Warm regards
    Rajasekhar

    Hi Madhu,
    This error might be due to screen resolution. Try to reduce screen resolution and run your program.
    Cheers
    Manohar

  • Get the sales order text from ITS and save it in SAP.

    Hi,
    I have created an application to create sales order from ITS. In this app i'm having a text field to fet the header text for the order. & after that I'm calling an RFC which has a BAPI to create the sales order.
    Now, when i enter the text for header texts in frontend (separated by ENTER), then it saves only the first line of the text.
    I've tried using :
    SPLIT ordernotes AT cl_abap_char_utilities=>cr_lf INTO TABLE t_ordnotes.
    and using FM: CREATE_TEXT,
    but still, it is saving only the first line.
    Can anyone please help me with this ?????
    Its urgent.
    Thanks in advance,
    Hemant.

    Hi
    See the sample BDC program that is used to upload the Material LONG Texts into SAP using MM01 Tcode
    check this may be helpful
    REPORT zmm_longtext
           NO STANDARD PAGE HEADING
           LINE-SIZE 255.
    Internal Table for Upload of Long Texts Data
    DATA: BEGIN OF itab1 OCCURS 0,
            matnr    LIKE mara-matnr,    " Material
            text     LIKE tline-tdline,  " Long Text
          END OF itab1.
    Internal Table for Upload of Long Texts Data
    DATA: BEGIN OF itab OCCURS 0,
            matnr LIKE mara-matnr,    " Material
            text  LIKE tline-tdline,  " Long Text
          END OF itab.
    To create Long Text lines for CREATE_TEXT function module
    DATA:BEGIN OF dt_lines OCCURS 0.
            INCLUDE STRUCTURE tline.   " Long Text
    DATA:END OF dt_lines.
    Variable declarations for CREATE_TEXT function module
    DATA : dl_name TYPE thead-tdname,   " Object Name
           dl_lan TYPE thead-tdspras,   " Language
           gv_matnr TYPE matnr.
    Constants
    CONSTANTS:
    Object ID for Long Text of Material Basic Data 1
      c_best     TYPE thead-tdid VALUE 'GRUN',
      c_material TYPE thead-tdobject VALUE 'MATERIAL'. " Object
    Parameters
    PARAMETERS p_file LIKE rlgrap-filename.
    At selection-screen on Value Request for file Name
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    Get the F4 Values for the File
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    Start Of Selection
    START-OF-SELECTION.
    *To Upload Flat file
      CALL FUNCTION 'UPLOAD'
        EXPORTING
          filename                = p_file
          filetype                = 'DAT'
        TABLES
          data_tab                = itab1
        EXCEPTIONS
          conversion_error        = 1
          invalid_table_width     = 2
          invalid_type            = 3
          no_batch                = 4
          unknown_error           = 5
          gui_refuse_filetransfer = 6
          OTHERS                  = 7.
      SORT itab1 BY matnr.
      LOOP AT itab1.
        CLEAR gv_matnr.
        SELECT SINGLE matnr INTO gv_matnr
           FROM mara WHERE bismt = itab1-matnr.
        IF itab1-text NE ' '.
          itab-matnr = gv_matnr.
          itab-text  = itab1-text.
          APPEND itab.
        ENDIF.
        CLEAR itab.
      ENDLOOP.
      DELETE itab WHERE matnr EQ ' '.
    Upload the Texts
      SORT itab BY matnr.
      LOOP AT itab.
        dt_lines-tdformat = 'ST'.
        dt_lines-tdline = itab-text.
        APPEND dt_lines.
        dl_lan = sy-langu.
        dl_name = itab-matnr.
    Call the Function Module to Create Text
        CALL FUNCTION 'CREATE_TEXT'
          EXPORTING
            fid         = c_best
            flanguage   = dl_lan
            fname       = dl_name
            fobject     = c_material
            save_direct = 'X'
            fformat     = '*'
          TABLES
            flines      = dt_lines
          EXCEPTIONS
            no_init     = 1
            no_save     = 2
            OTHERS      = 3.
        IF sy-subrc <> 0.
          WRITE:/ 'Long Text Creation failed for Material'(001),
                 itab-matnr.
        ELSE.
          WRITE:/ 'Long Text Created Successfully for Material'(002),
                 itab-matnr.
        ENDIF.
        AT END OF matnr.
          REFRESH dt_lines.
        ENDAT.
      ENDLOOP.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • BAPI to get the Sales order line item details

    Hi,
    My program gets Sale sorder and item as the input and I need to fetch all the item (Given item) details for this Sales Order from VBAP. Is there any BAPI to get the item details?

    Hi,
    This is a sample code of BAPI.Try to map it to your requirement.This is not related to vendor.This is related to sales order.
    Constants
    CONSTANTS: c_contract LIKE vbak-vbeln VALUE '0020000720',
    c_item LIKE vbap-posnr VALUE '000010'.
    Structures
    Structure to hold BAPI Header
    DATA: st_bapisdhd1 LIKE bapisdhd1.
    Internal Tables
    Sales Order Create BAPI Return Messages
    DATA: tbl_return TYPE STANDARD TABLE OF bapiret2
    WITH HEADER LINE.
    Sales Order BAPI Line Item
    DATA: tbl_bapisditm TYPE STANDARD TABLE OF bapisditm
    WITH HEADER LINE.
    Sales Order BAPI Line Item
    DATA: tbl_bapisditmx TYPE STANDARD TABLE OF bapisditmx
    WITH HEADER LINE.
    Sales Order BAPI Pricing Conditions
    DATA: tbl_bapicond TYPE STANDARD TABLE OF bapicond
    WITH HEADER LINE.
    Sales Order BAPI Partner Functions
    DATA: tbl_bapiparnr TYPE STANDARD TABLE OF bapiparnr
    WITH HEADER LINE.
    Sales Order BAPI Schedule Lines
    DATA: tbl_bapischdl TYPE STANDARD TABLE OF bapischdl
    WITH HEADER LINE.
    Sales Order BAPI Schedule Lines
    DATA: tbl_bapischdlx TYPE STANDARD TABLE OF bapischdlx
    WITH HEADER LINE.
    Sales Order BAPI Pricing Conditions
    DATA: tbl_bapicondx TYPE STANDARD TABLE OF bapicondx
    WITH HEADER LINE.
    Customer Enhancement for VBAK, VBAP, VBEP
    DATA: tbl_bapiparex TYPE STANDARD TABLE OF bapiparex
    WITH HEADER LINE.
    Table to hold BAPI Detail Conditions
    DATA: tbl_bapisdcond TYPE STANDARD TABLE OF bapisdcond
    WITH HEADER LINE.
    Table to hold Return Messages from Sales Order Change BAPI
    DATA: tbl_return_chg TYPE STANDARD TABLE OF bapiret2
    WITH HEADER LINE.
    Variables
    DATA: g_vbeln_created LIKE vbak-vbeln,
    g_valid_contract TYPE c,
    g_cont_price_date TYPE d.
    Start of Selection
    START-OF-SELECTION.
    PERFORM validate_contract.
    PERFORM create_sales_ord.
    PERFORM update_sales_ord.
    End of Selection
    END-OF-SELECTION.
    PERFORM write_output_report.
    Subroutines
    *& Form create_sales_ord
    Create the Sales Order
    FORM create_sales_ord .
    PERFORM populate_bapi_tables.
    PERFORM call_create_sales_ord_bapi.
    ENDFORM. " create_sales_ord
    *& Form populate_bapi_tables
    Fill up the BAPI Tables
    FORM populate_bapi_tables .
    PERFORM populate_bapi_header.
    PERFORM build_bapi_partners.
    PERFORM build_bapi_items.
    PERFORM build_bapi_sched_lines.
    ENDFORM. " populate_bapi_tables
    *& Form populate_bapi_header
    Build BAPI Header Details
    FORM populate_bapi_header .
    CLEAR st_bapisdhd1.
    st_bapisdhd1-doc_type = 'ZOC'. "Order type
    st_bapisdhd1-sales_org = '026'. "Sales Org
    st_bapisdhd1-distr_chan = '00'. "Dist Channel
    st_bapisdhd1-division = '00'. "Division
    st_bapisdhd1-purch_no_c = 'Cust Po No'. "Cust PO No
    st_bapisdhd1-name = 'Orderer'. "Name of Orderer
    st_bapisdhd1-ord_reason = ''. "Order Reason
    st_bapisdhd1-sales_off = '3001'. "Sales Office
    st_bapisdhd1-sales_grp = '301'. "Market Area
    IF g_valid_contract = 'X'.
    st_bapisdhd1-price_date = g_cont_price_date.
    ENDIF.
    ENDFORM. " populate_bapi_header
    *& Form build_bapi_partners
    Build BAPI Partner Functions
    FORM build_bapi_partners .
    CLEAR tbl_bapiparnr.
    tbl_bapiparnr-partn_role = 'AG'.
    tbl_bapiparnr-partn_numb = '0000100750'.
    APPEND tbl_bapiparnr.
    CLEAR tbl_bapiparnr.
    tbl_bapiparnr-partn_role = 'WE'.
    tbl_bapiparnr-partn_numb = '0000504472'.
    APPEND tbl_bapiparnr.
    ENDFORM. " build_bapi_partners
    *& Form build_bapi_items
    Build The BAPI Line Items
    FORM build_bapi_items .
    DATA: l_matnr LIKE mara-matnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = '10000072'
    IMPORTING
    output = l_matnr.
    CLEAR tbl_bapisditm.
    tbl_bapisditm-itm_number = c_item.
    IF g_valid_contract = 'X'.
    tbl_bapisditm-ref_doc = c_contract.
    tbl_bapisditm-ref_doc_it = c_item.
    tbl_bapisditm-ref_doc_ca = 'G'. "Contract
    ENDIF.
    tbl_bapisditm-material = l_matnr.
    tbl_bapisditm-plant = '3012'.
    tbl_bapisditm-target_qty = '5.000'.
    tbl_bapisditm-target_qu = 'M3'.
    tbl_bapisditm-item_categ = 'ZZOC'.
    tbl_bapisditm-sales_dist = '301'.
    tbl_bapisditm-dlv_prio = '02'.
    tbl_bapisditm-prc_group5 = '080'.
    tbl_bapisditm-cust_mat35 = 'kdmat'.
    tbl_bapisditm-route = 'TESYS'.
    tbl_bapisditm-usage_ind = 'CIV'.
    APPEND tbl_bapisditm.
    CLEAR tbl_bapisditmx.
    tbl_bapisditmx-itm_number = c_item.
    tbl_bapisditmx-ref_doc = 'X'.
    tbl_bapisditmx-ref_doc_it = 'X'.
    tbl_bapisditmx-ref_doc_ca = 'X'.
    tbl_bapisditmx-material = 'X'.
    tbl_bapisditmx-updateflag = 'I'.
    tbl_bapisditmx-plant = 'X'.
    tbl_bapisditmx-target_qty = 'X'.
    tbl_bapisditmx-target_qu = 'X'.
    tbl_bapisditmx-item_categ = 'X'.
    tbl_bapisditmx-sales_dist = 'X'.
    tbl_bapisditmx-dlv_prio = 'X'.
    tbl_bapisditmx-prc_group5 = 'X'.
    tbl_bapisditmx-cust_mat35 = 'X'.
    tbl_bapisditmx-usage_ind = 'X'.
    tbl_bapisditmx-route = 'X'.
    APPEND tbl_bapisditmx.
    ENDFORM. " build_bapi_items
    *& Form build_bapi_sched_lines
    Build the BAPI Schedule Lines
    FORM build_bapi_sched_lines .
    CLEAR tbl_bapischdl.
    tbl_bapischdl-itm_number = c_item.
    tbl_bapischdl-req_qty = '1'.
    tbl_bapischdl-req_date = sy-datum.
    APPEND tbl_bapischdl.
    ENDFORM. " build_bapi_sched_lines
    *& Form build_bapi_conditions
    Pull the BAPI Pricing Conditions from the Contract
    FORM build_bapi_conditions .
    LOOP AT tbl_bapisdcond.
    CLEAR tbl_bapicond.
    MOVE-CORRESPONDING tbl_bapisdcond TO tbl_bapicond.
    APPEND tbl_bapicond.
    CLEAR tbl_bapicondx.
    tbl_bapicondx-itm_number = tbl_bapicond-itm_number.
    tbl_bapicondx-cond_st_no = tbl_bapicond-cond_st_no.
    tbl_bapicondx-cond_count = tbl_bapicond-cond_count.
    tbl_bapicondx-cond_type = tbl_bapicond-cond_type.
    tbl_bapicondx-updateflag = 'I'.
    tbl_bapicondx-cond_value = 'X'.
    tbl_bapicondx-currency = 'X'.
    tbl_bapicondx-cond_unit = 'X'.
    tbl_bapicondx-cond_p_unt = 'X'.
    tbl_bapicondx-varcond = tbl_bapicond-varcond.
    APPEND tbl_bapicondx.
    ENDLOOP.
    ENDFORM. " build_bapi_conditions
    *& Form call_create_sales_ord_bapi
    Call the Sales Order Create BAPI
    FORM call_create_sales_ord_bapi .
    CLEAR g_vbeln_created.
    CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
    EXPORTING
    order_header_in = st_bapisdhd1
    IMPORTING
    salesdocument = g_vbeln_created
    TABLES
    return = tbl_return
    order_items_in = tbl_bapisditm
    order_items_inx = tbl_bapisditmx
    order_partners = tbl_bapiparnr
    order_schedules_in = tbl_bapischdl.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'.
    ENDFORM. " call_create_sales_ord_bapi
    *& Form update_sales_ord
    Update the newly created Sales Order with the Pricing Conditions
    from the Contract
    FORM update_sales_ord .
    CHECK g_valid_contract EQ 'X'.
    PERFORM get_contract_details.
    PERFORM build_bapi_conditions.
    PERFORM call_change_sales_ord_bapi.
    ENDFORM. " update_sales_ord
    *& Form get_contract_details
    Get Contract Details
    FORM get_contract_details .
    Need to manually get the relevant Pricing Conditions as the BAPI
    BAPISDORDER_GETDETAILEDLIST causes problems when we call the BAPI
    BAPI_SALESORDER_CREATEFROMDAT2 and BAPI_SALESORDER_CHANGE (I think
    this is due to the fact that these BAPIs belong to the same Function
    Group and there must be some common structures that are not cleared
    causing us all sorts of grief when we try and call the next BAPI)
    DATA: tbl_konv TYPE STANDARD TABLE OF konv WITH HEADER LINE.
    DATA: tbl_komv TYPE STANDARD TABLE OF komv WITH HEADER LINE.
    DATA: tbl_vbak TYPE STANDARD TABLE OF vbak WITH HEADER LINE.
    Pricing Condition Master
    DATA: BEGIN OF tbl_t685a OCCURS 0,
    kschl LIKE t685a-kschl,
    kaend_wrt LIKE t685a-kaend_wrt,
    END OF tbl_t685a.
    SELECT *
    INTO TABLE tbl_vbak
    FROM vbak
    WHERE vbeln = c_contract.
    READ TABLE tbl_vbak INDEX 1.
    SELECT *
    INTO TABLE tbl_konv
    FROM konv
    WHERE knumv = tbl_vbak-knumv AND
    kposn = c_item.
    CHECK sy-subrc EQ 0.
    We now need to make sure we only bring across the Condition Types that
    are EDITABLE. If we bring across non editable conditions (such as
    'ZPR1') the Change Sales Order BAPI will fail
    SELECT kschl kaend_wrt
    INTO TABLE tbl_t685a
    FROM t685a
    FOR ALL ENTRIES IN tbl_konv
    WHERE kappl EQ 'V' AND "Sales
    kschl EQ tbl_konv-kschl AND
    kaend_wrt EQ 'X' AND "Value is Editable
    kmanu NE 'D'. "Process manually
    Prepare for Binary Search
    SORT tbl_t685a BY kschl.
    LOOP AT tbl_konv.
    READ TABLE tbl_t685a WITH KEY kschl = tbl_konv-kschl BINARY SEARCH.
    IF sy-subrc EQ 0.
    MOVE-CORRESPONDING tbl_konv TO tbl_komv.
    APPEND tbl_komv.
    ENDIF.
    ENDLOOP.
    CHECK NOT tbl_komv[] IS INITIAL.
    Map KOMV into the more BAPI friendly BAPISDCOND structure
    CALL FUNCTION 'MAP_INT_TO_EXT_STRUCTURE'
    TABLES
    fxvbak = tbl_vbak
    fxkomv = tbl_komv
    fxbapikomv = tbl_bapisdcond
    EXCEPTIONS
    entry_missing = 1
    OTHERS = 2.
    ENDFORM. " get_contract_details
    *& Form call_change_sales_ord_bapi
    Call the Change Sales Order BAPI
    FORM call_change_sales_ord_bapi .
    DATA: st_head_chg LIKE bapisdh1x,
    st_logic_switch TYPE bapisdls.
    CHECK NOT g_vbeln_created IS INITIAL.
    CHECK g_valid_contract EQ 'X'.
    st_head_chg-updateflag = 'U'.
    st_logic_switch-cond_handl = 'X'.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
    salesdocument = g_vbeln_created
    order_header_inx = st_head_chg
    logic_switch = st_logic_switch
    TABLES
    return = tbl_return_chg
    conditions_in = tbl_bapicond
    conditions_inx = tbl_bapicondx.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'.
    ENDFORM. " call_change_sales_ord_bapi
    *& Form write_output_report
    Produce Output Report
    FORM write_output_report .
    IF NOT g_vbeln_created IS INITIAL.
    WRITE:/ 'Success! Sales Order', g_vbeln_created, 'was created!'.
    ELSE.
    WRITE:/ 'Failure! Sales Order was not created!'.
    ENDIF.
    SKIP.
    WRITE:/ 'Sales Order Create Log'.
    LOOP AT tbl_return.
    WRITE:/ tbl_return-type, tbl_return-id, tbl_return-number,
    tbl_return-message.
    ENDLOOP.
    SKIP.
    WRITE:/ 'Sales Order Change Log'.
    LOOP AT tbl_return_chg.
    WRITE:/ tbl_return_chg-type, tbl_return_chg-id,
    tbl_return_chg-number, tbl_return_chg-message.
    ENDLOOP.
    ENDFORM. " write_output_report
    *& Form validate_contract
    Make sure that the Contract is Valid
    FORM validate_contract .
    DATA: l_gueen LIKE vbak-gueen,
    l_prsdt LIKE vbkd-prsdt.
    SELECT SINGLE vbakgueen vbkdprsdt
    INTO (l_gueen, l_prsdt)
    FROM vbak
    INNER JOIN vbkd
    ON vbakvbeln = vbkdvbeln
    WHERE vbak~vbeln = c_contract AND
    vbkd~posnr = '000000'.
    IF sy-datum LE l_gueen.
    Contract is valid! Set Order Price Date
    g_valid_contract = 'X'.
    g_cont_price_date = l_prsdt.
    ENDIF.
    ENDFORM. " validate_contract
    Regards
    Rajesh Kumar

  • Need to create the sales order by using FM; crm_order_maintain

    Dear Expert's.
    can any body help me on creation of sales order by using FM; crm_order_maintain.
    Regards,
    Tanveer.Ahmed

    data: et_status type crmt_status_comt,
          es_status type crmt_status_com,
          ct_orderadm_h type  crmt_orderadm_h_comt,
          cs_orderadm_h type  crmt_orderadm_h_com,
          ct_orderadm_i type  crmt_orderadm_i_comt,
          cs_orderadm_i type  crmt_orderadm_i_com,
          ct_input_fields type crmt_input_field_tab,
          cs_input_fields type crmt_input_field,
          it_exception type  crmt_exception_t.
    data: gt_crmd_orderadm_h like crmd_orderadm_h occurs 0,
          gs_crmd_orderadm_h type crmd_orderadm_h.
    data: et_objects_to_save type crmt_object_guid_tab,
          es_objects_to_save type crmt_object_guid.
    data: it_saved_objects type crmt_return_objects.
    data: gt_field_names type crmt_input_field_names_tab,
          gs_field_names type crmt_input_field_names.
    data: cv_log_handle type  balloghndl.
    select single * from crmd_orderadm_h into gs_crmd_orderadm_h
    where object_id = '0005000400'.
    es_objects_to_save  = gs_crmd_orderadm_h-guid.
    append es_objects_to_save  to et_objects_to_save .
    es_status-ref_guid       = gs_crmd_orderadm_h-guid.
    es_status-ref_kind       = 'A'.
    es_status-status         = 'E0010'.
    es_status-user_stat_proc = 'ZPR01'.
    es_status-activate       = 'X'.
    append es_status to et_status.
    cs_input_fields-ref_guid    = gs_crmd_orderadm_h-guid.
    cs_input_fields-ref_kind    = 'A'.
    cs_input_fields-objectname  = 'STATUS'.
    cs_input_fields-logical_key = 'E0010ZPRO1'.
    gs_field_names-fieldname = 'ACTIVATE'.
    append gs_field_names to gt_field_names.
    cs_input_fields-field_names = gt_field_names[].
    append cs_input_fields to ct_input_fields.
    call function 'CRM_ORDER_MAINTAIN'
      exporting
        it_status         = et_status
      importing
        et_exception      = it_exception
      changing
        ct_orderadm_h     = ct_orderadm_h
        ct_orderadm_i     = ct_orderadm_i
        ct_input_fields   = ct_input_fields
      exceptions
        error_occurred    = 1
        document_locked   = 2
        no_change_allowed = 3
        no_authority      = 4
        others            = 5.
    if sy-subrc = 0.
          call function 'CRM_ORDER_SAVE'
            exporting
              it_objects_to_save        = et_objects_to_save
           importing
             et_saved_objects           = it_saved_objects
           changing
             cv_log_handle              = cv_log_handle
           exceptions
             document_not_saved         = 1
             others                     = 2.
             commit work.
    endif.

  • How do I get the Sales Orders Statuses? Is there any API for that?

    Hi!
    I'm trying to track all the statuses of a sales order. I want to get the header status, lines status, holds status, shipping status and the invoiced status.
    Does anyone knows if there is an API for that? Or I'll have to make lots of querys for that?
    I found out the following APIs, but it only returned me Y or N:
    -oe_header_status_pub.get_booked_status;
    -oe_header_status_pub.get_cancelled_status;
    -oe_header_status_pub.get_closed_status;
    -oe_holds_pub.check_holds;
    -oe_line_status_pub.get_pick_status;
    -oe_line_status_pub.get_ship_status;
    -oe_line_status_pub.get_invoiced_status;
    Thanks for the help!

    Hi,
    You can find the status of both SO Headers ahd Lines from the FLOW_STATUS_CODE column in oe_order_headers_all and oe_order_lines_all tables.
    Thanks
    Gowrishankar

  • Do we have any BAPI to get the sales contracts data.

    Hi Experts,
    Do we have any BAPI which fetches sales contracts details as i need to post a new contract based on that data from the legacy system which is also in SAP.
    Hoping an answer soon.
    Chitrasen

    hi,
    u can check all bapis available for sales in se37, searching by BAPI_SALE.
    Here u can check for ur required bapi...

  • How to get sales order data in substitution of fi-docu from GM posting ?

    How to get sales order data in substitution of FI documents from goods movement posting?
    When I posting a material document with movement type "501E", the system will creating a FI document automatically. And I need to get the sales order data in the substitution of FI document.
    I tried to export the data of the material document in user-exit "MB_CF001 Updating of material document data upon posting", but this user-exit does not triggered in the posting process at all. what's the problem?
    Do you have better solution or idea for this? Please help me. Thank you!

    Hello Harish,
    Please use BAPI_BUSPROCESSND_GETDETAILMUL to read details of sales order. This works as a remote enabled counterpart of CRM_ORDER_READ.
    Similarly if you want to display sales order from R/3, use FM BAPI_BUSPROCESSND_DISPLAY.
    Regards
    Kaushal

Maybe you are looking for

  • My exchange email no longer works

    I have deleted my email account countless times but still it will not connect to the server. I took it to the Apple shop who said as a last resort reset the phone to factory setting. So I backed up my phone to icloud and wiped it and still my email w

  • PDF and FLV links not working

    I have a course that's made up of a series of hyperlinked swfs and html files. There are also some flvs and pdfs in this. We had to design it in this format (vs. pdf or exe) because of our customer's special requirements. To try to make a long story

  • Error from itunes store

    I'm pulling at my hair!! When I try to download an application in itunes onto my MacBook, itunes says that I need to review my account information than redirects me to a page asking for my payment method. After I am done it redirects me back to the s

  • Cannot hear/monitor Centrance Micport Pro w/mic as input

    LP8 Audio preferences shows CEntrance device as input. LP8 Audio Midi Setup shows input as Centrance device. Audio channel on record, with Input monitoring selected/record armed. Cannot see or hear mic input through Mixer.

  • Grouping rows from a query

    Hi everyone! I want to know if it's posible to group the rows from a query into a unique row. Example: SELECT Field_1 FROM Table_1 Returns the following fileds: Field_1 A B C D I would want to modify my query so that the result obtained would be a si