Idoc in status 51 creates sales order

We have a peculiar problem in our production system.
The SALESORDER_CREATEFROMDAT201 Idoc comes in and goes into status 51 with the error that the material does not exist in the sales org.
Even though the Idoc is in status 51 the SO gets created with no line items (the Idoc had one line item)
If anyone anyone encountered such a problem before, please let me know how to resolve it.

Hi,
Go to we05 and see whether you have received an IDoc or not.(U sure must have received one,pick the latest).
Go to we64 and find the Process code and thereby the Function module attached to that PRcoess code for your Idco message type.
Put a Breakpoint in that function module.
Go to we19 and give that IDoc number and press inbound processing button on the application toolbar.
From the error message what I can infer is that The IDOC comes through to the CRM system, but the data in the IDoc is not able to create a correspoding employee record.
So it must be a Data problem and i don't think there is any problem with partner profiles or ports
<b>Reward points</b>
Regards

Similar Messages

  • Error: Validation failed for the field - Status While creating Sales Order

    Hi,
    I am getting an error while trying to create sales order header.
    I have tried using provided in the metalink as well but it still doesn't seem to work.
    I am on R12.1.1
    Can somebody help me out on this?
    The code is
    set serveroutput on
    DECLARE
    l_header_rec OE_ORDER_PUB.Header_Rec_Type;
    l_header_rec1 OE_ORDER_PUB.Header_Rec_Type;
    l_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
    l_line_tbl1 OE_ORDER_PUB.Line_Tbl_Type;
    l_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type;
    l_header_adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
    l_line_adj_tbl OE_ORDER_PUB.line_adj_tbl_Type;
    l_header_scr_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
    l_line_scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
    l_request_rec OE_ORDER_PUB.Request_Rec_Type ;
    l_return_status VARCHAR2(1000);
    l_msg_count NUMBER;
    l_msg_data VARCHAR2(1000);
    p_api_version_number NUMBER :=1.0;
    p_init_msg_list VARCHAR2(10) := FND_API.G_FALSE;
    p_return_values VARCHAR2(10) := FND_API.G_FALSE;
    p_action_commit VARCHAR2(10) := FND_API.G_FALSE;
    x_return_status VARCHAR2(1);
    x_msg_count NUMBER;
    x_msg_data VARCHAR2(100);
    p_header_rec OE_ORDER_PUB.Header_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_REC; 
    p_old_header_rec OE_ORDER_PUB.Header_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_REC;
    p_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_VAL_REC;
    p_old_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_VAL_REC;
    p_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_TBL;
    p_old_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_TBL;
    p_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_VAL_TBL;
    p_old_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_VAL_TBL;
    p_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_PRICE_ATT_TBL;
    p_old_Header_Price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_PRICE_ATT_TBL;
    p_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ATT_TBL;
    p_old_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ATT_TBL;
    p_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL;
    p_old_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL;
    p_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_TBL;
    p_old_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_TBL;
    p_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL;
    p_old_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL;
    p_line_tbl OE_ORDER_PUB.Line_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_TBL;
    p_old_line_tbl OE_ORDER_PUB.Line_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_TBL;
    p_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_VAL_TBL;
    p_old_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_VAL_TBL;
    p_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_TBL;
    p_old_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_TBL;
    p_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_TBL;
    p_old_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_TBL;
    p_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_TBL;
    p_old_Line_Price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_TBL;
    p_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_TBL;
    p_old_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_TBL;
    p_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_TBL;
    p_old_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_TBL;
    p_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_TBL;
    p_old_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_TBL;
    p_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_TBL;
    p_old_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_TBL;
    p_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_TBL;
    p_old_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_TBL;
    p_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_TBL;
    p_old_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_TBL;
    p_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type := OE_ORDER_PUB.G_MISS_REQUEST_TBL;
    x_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
    x_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
    x_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
    x_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
    x_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
    x_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
    x_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
    x_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type; 
    x_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
    x_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
    x_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
    x_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
    x_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
    x_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
    x_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
    x_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
    x_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
    x_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
    x_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type; 
    X_DEBUG_FILE VARCHAR2(100);
    l_line_tbl_index NUMBER;
    l_msg_index_out NUMBER(10);
    BEGIN
    oe_debug_pub.debug_on;
    DBMS_APPLICATION_INFO.set_client_info (121);
    dbms_output.enable(1000000);
    fnd_global.apps_initialize(2787,50703,660); -- pass in user_id, responsibility_id, and application_id
    oe_msg_pub.initialize;
    oe_debug_pub.initialize;
    MO_GLOBAL.init('ONT');
    X_DEBUG_FILE := OE_DEBUG_PUB.Set_Debug_Mode('FILE');
    oe_debug_pub.SetDebugLevel(5); -- Use 5 for the most debuging output, I warn you its a lot of data
    dbms_output.put_line('START OF NEW DEBUG');
    --This is to CREATE an order header and an order line
    --Create Header record
    --Initialize header record to missing
    l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
    l_header_rec.pricing_date := SYSDATE;
    l_header_rec.sold_to_org_id := 2096;
    l_header_rec.ordered_date := SYSDATE;
    l_header_rec.sold_from_org_id := 121     ;
    l_header_rec.salesrep_id := -3;
    l_header_rec.order_type_id := 1003;
    l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
    l_line_tbl_index :=1;
    -- FIRST LINE RECORD
    -- Initialize record to missing
    l_line_tbl(l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC;
    -- Line attributes
    l_line_tbl(l_line_tbl_index).inventory_item_id := 124516;
    l_line_tbl(l_line_tbl_index).ordered_quantity := 500;
    l_line_tbl(l_line_tbl_index).ship_from_org_id := 563;
    l_line_tbl(l_line_tbl_index).operation := OE_GLOBALS.G_OPR_CREATE;
    -- CALL TO PROCESS ORDER Check the return status and then commit.
    OE_ORDER_PUB.process_order (
      p_api_version_number => 1.0
      , p_init_msg_list => fnd_api.g_false
      , p_return_values => fnd_api.g_false
      , p_action_commit => fnd_api.g_false
      , x_return_status => l_return_status
      , x_msg_count => l_msg_count
      , x_msg_data => l_msg_data
      , p_header_rec => l_header_rec
      , p_line_tbl => l_line_tbl
      , p_action_request_tbl => l_action_request_tbl
       -- OUT PARAMETERS
      , x_header_rec => l_header_rec1
      , x_header_val_rec => x_header_val_rec
      , x_Header_Adj_tbl => x_Header_Adj_tbl
      , x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
      , x_Header_price_Att_tbl => x_Header_price_Att_tbl
      , x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
      , x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
      , x_Header_Scredit_tbl => x_Header_Scredit_tbl
      , x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
      , x_line_tbl => l_line_tbl1
      , x_line_val_tbl => x_line_val_tbl
      , x_Line_Adj_tbl => x_Line_Adj_tbl
      , x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
      , x_Line_price_Att_tbl => x_Line_price_Att_tbl
      , x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
      , x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
      , x_Line_Scredit_tbl => x_Line_Scredit_tbl
      , x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
      , x_Lot_Serial_tbl => x_Lot_Serial_tbl
      , x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
      , x_action_request_tbl => l_action_request_tbl
      dbms_output.put_line('OM Debug file: ' ||oe_debug_pub.G_DIR||'/'||oe_debug_pub.G_FILE); 
      oe_debug_pub.debug_off;
      -- Retrieve messages
      FOR i IN 1 .. l_msg_count
      LOOP
       Oe_Msg_Pub.get( p_msg_index => i
        , p_encoded => Fnd_Api.G_FALSE
        , p_data => l_msg_data
        , p_msg_index_out => l_msg_index_out);
       DBMS_OUTPUT.PUT_LINE('message is: ' || l_msg_data);
       DBMS_OUTPUT.PUT_LINE('message index is: ' || l_msg_index_out);
      END LOOP;
    -- Check the return status
    IF l_return_status = FND_API.G_RET_STS_SUCCESS
    THEN
      dbms_output.put_line('Process Order Sucess');
      dbms_output.put_line('new Header id:' || l_header_rec1.header_id);
    ELSE
      dbms_output.put_line('Failed');
    END IF;
    Commit;
    END; Regards
    knick

    Kinck
    The same script worked for me in vision (R12.1). You may have issues with your defaulting of a number of attributes that you are not passing in the API (like price list, line type and so on). You may want to check them.
    Thanks
    Nagamohan

  • Inbound idoc for orders05 to create sales order

    Hi all,
    I am creating a sales order through idoc (ORDERS05). I am getting a flat file, which is being converted into idoc from XI side and i need to add certain things and validate inside the function module IDOC_INPUT_OREDERS. I am using the exit call customer function '002' (EXIT_SAPLVEDA_002)  in it.
    My confusion is regarding the population of control records. If some validation fails, i need to set current status as 51. Which field i need to update in this exit in order to achieve this. What are the other control fields that i need to update for an inbound idoc please specify.
    Also, i have another doubt, what is the use of DXBDCDATA in that exit. Do i need to do any BDC related work in inbound idocs.
    I am new to inbound idoc scenario. But havn't found enough tutorial related to standard idoc generation..
    thanks

    Hi,
    I think, you should fill the validation errors in EXIT_SAPLVEDA_011 (SD EDI Incoming Orders: Final Processing of Internal Error Tables) which subsequently update the status records of IDOC.  Check line NO 56 of function module "IDOC_INPUT_ORDERS".
    Regards
    Vinod

  • BAPI vs IDOC in creating Sales Order

    Hi Gurus,
    Good day!
    I would like to seek for your expertise to assess the advantages and disadvantages of using IDOC vs BAPI in creating sales orders?
    Overview of the requirement:
    Sales Orders are automatically created via idoc but we are planning to redesign the process by using BAPI. However, there are concerns when using a BAPI such as.
    1. Error handling/monitoring
    2. reprocess of failed creation of orders
    Thank you in advance.

    Hi Sai Sai,
    those are exactly the disadvantages.
    If you were using other middleware like SAP XI then you would have a place to monitor communications and reprocess messages, so you could use BAPI.
    But if you don't you'd had to create that mechanism in SAP or move that responsibility to your partners.
    BAPIs are useful for online SAP programs but if you require a background process with a maintenance infrastructure then you are better served with IDOCs.
    regards,
    Edgar

  • Find status of a sales order created using EDI IDOC

    Hello everyone,
       I have IDOC created for incoming sales order using FM 'IDOC_INPUT_ORDERS'.
    When a sales order is created manually iva VA01, it prevents the order from being saved when a specific error is hit unless user resolved it first.   However, when the order is created via EDI IDOC, the error is hit and it cannot be created.  In the sapmv45a program, i will to say that if it is an EDI IDoc transacion for the order, let it bypass the error and create the order.  
         Can anyone pls tell me how to check the status of a sales order being created using EDI IDOC ?
    Sy-batch does not work.
    Thank you in advance.
    Joyce

    Joyce,
    If you pay attention the code in FM it is exporting value of da_edi_sign to memory id "SD_EDI_ACTIVE" stored in constant "da_memory_id". ('CONSTANTS: da_memory_id(13) VALUE 'SD_EDI_ACTIVE'.)
    In your program you have two you have two options.
    1. Declare a constant as in the FM and use that as mentioned below:  
    CONSTANTS: da_memory_id(13) VALUE 'SD_EDI_ACTIVE'.
    IMPORT v_memid FROM MEMORY ID da_memory_id.
    2. Hardcode memory id as below:
    IMPORT v_memid FROM MEMORY ID 'SD_EDI_ACTIVE'.
    Hope this resolves your problem.
    Gajendra

  • Regarding IDOC posting to create sales order

    Hi Friends,
    when we are trying to post Idoc to create sales order, Idoc status is showing error as "Enter requested delivery date" with status 51. and error message no is V1394. we found that user is trying to post the Idoc with two delivery dates.
    Kindly help me to find out the root cause of this issue....why system is throwing error as "Enter requested delivery date"
    Thanks in Advance,
    Reagards,
    Babu

    Hi Babu,
    Normally customer will forward 2 types of delivery date
    1. Requrested Delivery Date (Goods reaching to the customer door step, EDI qualifier '002')
    2. Requested shipping Date (Googs leaving from shipping from warehouse, EDI qualifier '10')
    In the above case SAP will take only requested Shipping date which can be mapped at E1EDK03 - DATUM with E1EDK03 - IDDAT is equal to '002'.
    Let me know whether you are mapping IDOC with EDI message. If so then you need to map with the EDI qualifier '10'
    << Moderator message - Point begging removed >>
    With best regards,
    M. Rajendan.
    Edited by: Rob Burbank on Jan 4, 2012 9:47 AM

  • Error determining posting period(infostructure S008,Variant Z2,RC3) while creating Sales orders from Inbound IDOCS

    Hello,
    I am getting this Error message"error determining posting period(infostructure S008,Variant Z2,RC3)" while creating Sales order from Inbound Idocs in the IDOC,which is affecting sales order creation.
    While viewing this Info structure S008, I could see no records have been maintained. Wanted to know the reasons behind this Hard error?
    Is it something related to Date Field used in the Update Rules for this Infostructure which is causing this posting period error?
    Appreciate your inputs on this.
    Thanks and Regards
    Mohammed Roshan

    Thank you Jelena,I checked the Ship. Delivery dates in the IDOC which are for Current Fiscal Year- 20140703 and 20140711,Could there be any other reason for this error?
    Could it be an issue with e Update rule in this Infostructire S008
    Secondly when we try change the update rule thru MC25 for this Infostructure S008,It gives a message"
    "Maintenance of SAP standard updates not allowed"
    Kindly advice
    Thanks and Regards
    Mohammed Roshan

  • Creating Sales Orders from Quantity Contract - ORDERS05 IDOC

    Hi,
    I have created a Quantity Contract in ECC. Now I want sales orders to be created w.r.t to the Contract through ORDERS05.
    Can anyone suggest which IDOC Segment and Qualf i have to populate to achive the same.
    Also say once I am able to achive the creation of Release Orders from the Contract through ORDERS05. If I surpass the Qty of the Contract . The IDOC should be have a field for notifying the same.
    REgards,
    BInayak

    Hello Binayak
    You  may use the following segment and fields for reference data:
    Segment: E2EDK02
    Fields:
    QUALF : IDOC qualifier reference document - I think for contracts this is '001'.
    BELNR : IDOC document number
    POSNR : Item number
    As per a flag to indicate that the contract quantity is surpassed, I doubt there will be anything like that becasue is an Idoc is before you created the order and how will the system know you have surpassed until an order is entered?
    I think you need to use 'completion rule' and copy control 'update document flow' features to work on this.
    Hope this helps.

  • How to change the status of material while creating sales order via BDC

    Hai.
    In BDC while creating sales order( va01 posting ) it is stucking up in middle saying material is new. I.e Sales order (va01) is not  getting created because  of material status is new . I want to create sales order  (va01) even  material status is new.
    pls give me out the solution. Points will be rewarded.
    thanks & regards,
    sami.

    Hi,
    If you drag the line item a little towards the right side, you will find a filed material entered. The one you see in the material filed on sales order over view screen is the one determined. You can as well double click and see the fields material entered and material determined.
    Is there anything else you are expecting to see as part of analysis ?
    Regards
    Sadhu Kishore

  • ERROR IN CREATING SALES ORDER,USING IDOC TYPE ORDERS05

    I am using exit to write my code for creating sales order of IDOC Type ORDERS05 and order type ZDRX.
    IF I proceess the Idoc in background each time error message comes
    FIELD kuwev-kunnr(ship to party)is not an input field.
    but if i run in foreground in debugging mode,sales order is getting created..
    please suggest something.

    If thats not working..
    try BAPI_SALESORDER_CREATEFROMDAT2
    If BAPI is not working. try creating a bdc for the same if there's not error on trying from VA01

  • Create Sales order from Internal Purchase Order using IDOC

    Hello Friends,
    I have requirement to create Sales Order from Internal Purchase Order Using IDOC.
    Backgorund, we have already configured IDOC orders05 to create Sales Order from external Purchase order from Inbound IDOC, and it is working fine.
    Now we have new requirement to create Sales Order from our own Purchase order, i.e. When PO is created in one plant corresponidng sales order automatically must needs to create in another Plant with respect PO.
    I m trying to design a solution for above problem as follows,
    1.create an Inbound Idoc from PO, by creatiing one new message type on PO save.
    2.Process that Inbound  IDOC same as it is from external PO.
    3.Once processed Sales order will create.
    Please help me in step 1. to create Inbound IDOC from PO.
    If you want any further clarification please write me.
    Thanks,
    Mahesh

    I had done a similar scenario before and we achieved it through SAP XI. The problem is with the control record. When we create a ORDERS IDOC from a PO the control record will be for outbound transmission. We sent the file to XI and XI resent it back with some data parsing and a new inbound control record. This way it went neat outbound and inbound.
    I'm not sure what kind of architecture you have. If you have to do it within your ECC/R/3, then you could create the outbound IDOC to a new port and write a fresh RFC to pick it up from the same folder and create a new control record for inbound processing.
    I haven't tried this; but there is a "processing w. trigger (inbound)" option on the outbound process code. May be you can explore into that a bit more.
    I'm sure there could be better approaches to handle this within ECC so if you stumble on any, do write back. I would like to know to update my knowledge .

  • Problem creating sales order using IDoc ORDERS05 (Inbound)

    Hello Experts,
    We are trying to create a sales order using the IDoc ORDERS05 with process code ORDE for creating sales order. I am getting the following error "VKORG, VTWEG, SPART cannot be determined for customer 0000006000 , vendor
    Diagnosis
    No sales organization, distribution channel or division were sent to the IDOC. This data is necessary if a sales order is to be added automatically. If this data is unavailable, you cannot create a sales order document.
    I was not able to find the fields to fill the distribution channel and divison in the Idoc structure. I have filled in Sales organization in E1EDK14 segment as 3000.
    I am not able to figure out the cause for the error.
    Same data works fine from BAPI_SALESORDER_CREATEFROMDAT2.
    Please help.
    Thanks,
    Suma
    Edited by: Suma B on Jun 17, 2008 11:12 AM

    Hello Suma
    In this case I would recommend to debug the IDoc processing.
    Call transaction WE19 and start the inbound processing of your IDoc in debugging mode. The error message will most likely occur in function module IDOC_INPUT_ORDERS.
      LOOP AT idoc_contrl.
    * SET/GET Parameter und interne Tabellen neu initialisieren
    * initialize SET/GET Parameter and internal tables
        PERFORM initialize_organizational_data.
    * IDOC-Segmente in die entsprechenden Anwendungsdaten übernehmen
    * Move IDOC to internal tables
        PERFORM interpret_idoc_orders.                    "<= check here
    * Prüfen ob gewisse Segmente gefüllt sind
    * check IDOC-Segments
        PERFORM check_idoc_segments.                 "<= check here
    * Prüfen und Ermitteln von Organisationsdaten
    * check internal tables and determine organization data
    Regards
      Uwe

  • How create sales order with respect to an idoc?

    hi ,
          does any one know how to create a sales order using an idoc number ?
    thanks
    mmn

    Hi refer below Reward if helps
    XI IDOC ORDERS04 create sales order update VBKD_BSARK
    For creating sales documents (sales order) through IDOCS you will have to use the T code WE19.  In that click basic type and enter order05(IDOC type) and select via message type then enter ORDERS(message type), click execute.
    You will get to see many fields.here you have to enter the datas that you enter in the VA01 screen in order to create sales order. The datas such as material name, date, qty, P.O no etc.  After entering all the datas, you click standard inbound the IDOC would be created by the system.You can see the created order by going in to VA03 screen.
    Next time when you create the IDOC, in same tcode WE19 screen, click existing IDOC and enter the IDOC which you created in the above step and just change the P.O no.Sytem will create new sales order through new IDOC
    Before doing all you need to maintain the partner profile in T code WE20.  For this Discuss with EDI consultant.

  • Create Sales order using ORDERS05 idoc

    Hi Experts,
      i need to create sales order from an external system using Idocs. we are using ORDERS05. We needs to save data in some custom fields. hence we have extended the idoc. But the Z* fields are not at the screen level. The function module 'IDOC_INPUT_ORDERS' uses call transaction and hence we are unable to save data in the Z fields.
    Please advice some alternate approach.
    We are looking into the possibility of using a custom function module and calling the create BAPI. Please advice is there is a better approach.
    Thanks & Regards,
    Amit

    The process code ORDE does not use BAPIs. It uses call transaction to VA01. This is the reason i am facing the problem. The custom fields which i have are not in the VA01 screen.
    The BAPi is called by IDOC_INPUT_SALESORDER_CREATEFR for message type SALESORDER_CREATEFROMDAT202. But i am not sure if this works.
    Regards,
    Amit

  • Create Sales Order using IDoc

    Hi All,
    Based upon customer's input file which contains header and line item details I have to create sales order in our system. We would like to use IDoc for this. Customer will send us file once a day by email or FTP.
    For this I have created a port and partner profile but I am not sure how the process will get initiated?
    Can someone please let me know how can I do this? There is now outbound process involved, I just need to create sales order based upon input file using IDoc.
    Regards,
    Sanjay

    HI,
    You cannot directly call the function modules that process the idoc, because these functions are called dynamically by the ALE layer and the function expects data in a certian format (IDoc format ).
    BAPI would be the best way to go for your scenario.
    However there is a workaround if you want to use IDoc only. You can follow this approach :
    1. Populate an outbound ORDERS05 IDoc from the file data.
    2. Distribute it to the same system, i.e sender system and receiver system is same.
    3. On the Inbound side the Idoc that you created on the outbound side will be received and processed.
    "R3  File----->Outound ORDRES05  -----
    ______________________________________|
    |
    '------> " Inbound ORDERS05 ( in the same R3 system)
    The tricky part is sending an Idoc and receiving in the same system, but you can find how to do this on the wiki pages.
    regards,
    Advait

Maybe you are looking for

  • Is there a way to use a camera connection kit with an ipod touch 64gb?

    is there a way to use a camera connection kit with an ipod touch 64gb?  Is there an App for that?

  • Audiobook did not download correctly to iPhone

    Audiobook started downloading directly to my iPhone. Once part 1 of 2 was downloaded, I paused Part 2 download until I was on the computer. Then went on my merry way into a lengthy road-trip.  I got about 1 hour into the story under the Part 1 downlo

  • Exporting PDF to Word

    I have created a table in InDesign and saved it as a PDf document. Now the client wants to be able to open it in Word. Can a PDF document be exported to a Word format?

  • Time Machine crashes every time after the computer sleeps or goes into screen saver for a period of time

    Time Machine works for me about 90% of the time, until I leave the computer alone for over a hour it seems and gets into the late screen saver stage or goes to sleep. After it does this Time Machine will not work, yet the hard drive is still fully fu

  • Individual Email

    Hi ALL , I have a customer table with columns Name, Email & Date Data example Ron  [email protected]  6/19/2014 John [email protected] 6/19/2014 Darren [email protected] 6/19/2014 Now  i need to send emails to all of them where the date  column = get