VA01 BDC does not return sales order number

Hi All,
I am using BDC to create sales orders using transaction VA01. Most of the time I have no problems using this method. However, for some orders no order number is returned.
I know that BDC is not the best way of doing things, but we have customized the sales order screens a lot and therefore can't use BAPI, so we need to use BDC.
I have used display mode 'A' when calling the transaction and I know that all the screens populate correctly. Then when the order saves, no order number is provided. The just created order can't be found by searching using the sold-to party, so the order appears to not have created. However, when I look in the table of messages returned from the transaction, there are no errors.
<b><REMOVED BY MODERATOR></b>
Thanks in advance,
Dan
Message was edited by:
        Alvaro Tejada Galindo

Why don't use update mode called 'S'.
call transaction 'VA01' using BDCDATA
                       MODE 'N'
                       update 'S' -> use this one.
                       messages into bdcmsgcoll.
Thanks
Seshu

Similar Messages

  • BAPI does not create Sales order

    Hi All,
    I am using BAPI_SALESORDER_CREATEFROMDAT2 to create sales order.
    It is working fine till now.
    But I found that whenever there is a material whose condition price is maintained and doesnot match with the valuation type, the Sales order does not get created, neither it gives any error msg.
    For e.g For Valuation type Consign , condition type ZPCS is valid and similarly for Turnkey , condition type ZPTK is valid.
    if a material has valuation type consign and condition type ZPTK.. The SAP system ofcourse will not allow to create a SO unless we delete the ZPTK entry from the SO and create ZPCS...
    BAPI also doesnot create the SO but doesnot return the error messge too.
    I try to put the ZPCS value to BAPI thru BAPICOND..but still not working?
    How do i handle such case?
    Points will be awarded to useful ans

    Hi,
    If you are saying that you cannot create a sales order with the Valuation type and Condition type mismatch even through VA01 manually, then there is nothing much you can do in BAPI also.
    2nd Case is you say that that BAPI RETURN table is not getting populated and it is empty in this issue which is not letting you know that Sales order is not Created.
    The one work around for this issue is you can check the exporting parameter SALESDOCUMENT if it has the Sales Order number or not. if the RETURN table is empty and the SALESDOCUMENT field has SO Number, then SO is created and if RETURN table is Initial and SALESDOCUMENT is also Initial, then it is the issue that you are facing.
    Also try posting a Query in OSS.
    regards,
    Mahesh

  • Settlement rule does not exists in order number.

    Hi All,
    I have been recieving a error while trying to save the Production order. The error reads as "Settlement rule does not exixts in order". But fact is that order has settlement rule. Also there is a default setting done in order type settlement profile because of which settlement rule is created automatically.
    Now there is a way around. We calculate cost manually and then we go to settlement rule and check for error. Once we do so the order is good to save.
    But we are not able to save it automaticaaly after release. This issue occurs when we try to release the order and then after releasing the order we try to save it.
    Please help us on this issue.

    Hi Prabhakar,
    Thanks for your input. But the said setting was already done while implementation. All the material except this material has the issue. We are able to realease the order properly for the material except this one. And since go live we are using this material for first time.
    We did a work around. We copied this material and recreated a new material with reviced part number. That one is working fine in lower client. We have now no idea how could one material all the same data like material master and routing and BOM and work centers can work properly whicle failing for other.
    We are trying to debug this will let you all know if we find the solution. Till then if you all have any idea any prior experience, please let me know.

  • How does the return sales order captured the price for mat. Doc. during GI

    Dear Guru,
    We have a commercial return sales order process, which we have created a Doc Type YR01 "Commercial Return"
    everytime when this YR01 is been generated from the Customer Return PO, we need to change the MAP via tcode MR21.
    Problem here, this time the user processed with a wrong step, the user straight away to create a DO and GI for this YR01  before the MAP is changed. SO obviously the price in Material Document generated when GI is inccorect, thus a reversal for this GI and DO is done.
    After DO and GI is reversed, we update the correct MAP via MR21 and perform a DO and then GI, but we realized the Price in material document doesn't capture the latest updated MAP price.
    So after many testing, we found there are 2 ways to solve this,
    1. Recreate a new YR01 Commercial return sales order
    2. Or during the MR21, select the variance "Special Stock - Sales Order"
    Question,
    Can i know where does the SO capture the MAP price and where and which table that the MR21 will be updating when selected variant "special stock - sales order"?
    Thank you very much,
    Chee Wee

    Hi,
    The price entered in MR21 updates the price for the material in material master "accounting 1" tab page. This will update the price in the table MBEW according to the valutaion class you have assigned to the material type.
    If you are entering "Special Stock - Sales Order" in MR21. the valuation class for sales order stock should be assigned for the material in the material master "accounting 1" tab page MBEW-EKLAS, this valuation class will have an altogether different accounting, so according to me option 1 i.e reversal of document YR01 is a more easier solution.
    Regards
    Aadesh Kamat
    Edited by: aadesh123 on Jul 11, 2011 10:45 AM
    Edited by: aadesh123 on Jul 11, 2011 10:48 AM

  • IPC requirement does not effect sales order

    Hi,
    I wrote a pricing requirement  in java extending RequirementAdapter.
    I uploaded it to the CRM system. When the requirement  is called, it writes messages to the VMC log and i can see the result of the requirement  : "true" or "false" .
    The problem is that the result of the requirement  does not effect the condition in the sales order - nothing happens no matter what the result value is.
    What should I do in order to get an error message in the sales order when the requirement returns false?
    Thanks
    Tomer

    Hi Michael,
    If the requirement will not trigger any error message by default according to the returned value, what excaly do I need to do in order to achieve that? Is there a BADI or user exist  where I can check the returned value and raise the message?
    Thanks,
    Tomer

  • XVBAP has the new line item but does not update Sales Order

    Hi
    I need to update the sales order with a new line item when the line item has a base unit of measure as the sales unit. I need to then convert the base unit to sales unit with a whole figure and the rest can be in the base unit.
    I am able to see the update in the xvbap but the line item doesn't get updated.
    I am puting this code in a perform within
    MV45AFZB  within   Form  USEREXIT_CHECK_VBAP
    But I guess I am doing something wrong can someone please take a look at it and tell me what is wrong with the coding.
    *&  Include       ZSD_CREATE_NEW_LINE_ITEM              *
    *&      Form  create_new_line_item
          text
    -->  p1        text
    <--  p2        text
    FORM CREATE_NEW_LINE_ITEM .
      CONSTANTS: C_MEINH LIKE MARM-MEINH VALUE 'CSE'.
    Variables Used
      DATA: WS_WMENG LIKE VBEP-WMENG.
      DATA: INPUT  LIKE VBAP-KWMENG,
            WS_EA  LIKE VBAP-KWMENG,
            WS_CSE LIKE VBAP-KWMENG.
      DATA: WS_MVKE_VRKME LIKE MVKE-VRKME.
    Internal Tables and Structures
      DATA: WS_XVBAP LIKE XVBAP.
    DATA:
    it_vbap  LIKE vbap OCCURS 0 WITH HEADER LINE,
    it_vbep  LIKE vbep OCCURS 0 WITH HEADER LINE,
    it_xvbap LIKE vbapvb OCCURS 0 WITH HEADER LINE.
      DATA: BEGIN OF WS_MARM,
              MEINH LIKE MARM-MEINH,
              UMREZ LIKE MARM-UMREZ,
              UMREN LIKE MARM-UMREN,
            END OF WS_MARM.
      CLEAR WS_MVKE_VRKME.
      SELECT SINGLE VRKME INTO WS_MVKE_VRKME
        FROM MVKE
        WHERE MATNR EQ XVBAP-MATNR
        AND   VKORG EQ XVBAK-VKORG
        AND   VTWEG EQ XVBAK-VTWEG.
      IF VBAP-VRKME <> WS_MVKE_VRKME.
       LOOP AT XVBAP.
          SELECT SINGLE MEINH UMREZ UMREN
            FROM MARM
            INTO WS_MARM
            WHERE MATNR = VBAP-MATNR
            AND   MEINH = WS_MVKE_VRKME.
          IF XVBAP-MEINS <> WS_MVKE_VRKME.
            IF NOT XVBAP-KWMENG = 0.
              WS_WMENG = XVBAP-KWMENG / WS_MARM-UMREZ.
              IF WS_WMENG > 1.
    This means that the line item needs to be split into CSE & EA
                  INPUT  = XVBAP-KWMENG.
                  WS_EA  = INPUT / WS_MARM-UMREZ.
                  WS_CSE = WS_EA.
                  WS_EA  = WS_CSE * WS_MARM-UMREZ.
                  WS_EA  = INPUT - WS_EA.
    Now we have the qty. split into EA & CSE. Now to
    assign it to xvbap
                  XVBAP-KWMENG = WS_EA.
                  XVBAP-VRKME  = WS_MVKE_VRKME.
              READ TABLE XVBAP WITH KEY POSNR = XVBAP-POSNR.
                MODIFY XVBAP INDEX SY-TABIX.
                  WS_XVBAP = XVBAP.
                  WS_XVBAP-KWMENG = WS_CSE.
                MOVE-CORRESPONDING WS_XVBAP TO XVBAP.
                INSERT XVBAP INDEX SY-TABIX.
              ENDIF.
            ENDIF.
          ENDIF.
      ENDIF.     " IF xvbap-vrkme 'EA'.
    ENDFORM.    " create_new_line_item

    Hi Clark,
    Pls check the Include MV45AFZZ instead of the one which you are using . Here in this include MV45AFZZ you can have access to the Header and Line items data .
    Here in this include
          FORM USEREXIT_SAVE_DOCUMENT                                   *
          This userexit can be used to save data in additional tables   *
          when a document is saved.                                     *
          If field T180-TRTYP contents 'H', the document will be        *
          created, else it will be changed.                             *
          This form is called at from form BELEG_SICHERN, before COMMIT *
    form userexit_save_document.
    Endform.
    Either you can write the code you want to update the XVABP table here or you can use the form .
          FORM USEREXIT_MOVE_FIELD_TO_VBAP                              *
          This userexit can be used to move some fields into the sales  *
          dokument item workaerea VBAP                                  *
          SVBAP-TABIX = 0:  Create item                                 *
          SVBAP-TABIX > 0:  Change item                                 *
          This form is called at the end of form VBAP_FUELLEN.          *
    form userexit_move_field_to_vbap.
    endform.
    This are the 2 performs in this include where you can do you code and it will defnitely solve your problem.
    Good Luck to you . Let me know if your problem get solved.
    Thanks & Regards,
    Naidu.

  • Delivery date does not match sales orders  proposed delivery date

    when i create sales order the requested delivery date by default is todays date and if nobody changes it, it will stay the same even after i save the order but the acutal delivery date is diffrent in the sales document or delivery document
    can anyone please throw some light on it
    Thanks in advance

    Hi Raj,
    Req D Date is the date on which teh custoemr wants the goods to be delivered. But it wont be possible always. So there will be an availability check on the stock of that material and based on the availability and transportation lead times, the possible delivery date will be determined and populated at the schedule line level of the document.
    Hope this clarifies your doubt.
    Reward if this helps.

  • PLSQL function does not return the correct number of rows?

    Hey folks. I'm still green when it comes to writing PLSQL. It's fun, rewarding and very frustrating. Hence, I'm turning to the experts. If you folks can help me understand what I'm doing wrong here, I'd really appreciate it.
    The code is somewhat specific to my company's product, but I think it should be easy to read and understand what I'm doing. If not, please let me know what I can clarify.
    All i'm trying to do is determine if the most recent iteration of data available for a particular host is a full scan or not (level2). I go about this in the following manner:
    1. get the operatingsystem id, it's scandate (preferred), the most recent scandate and it's scan status from a table of where all operating systems data lives. Loop through all the Oses
    (from this I set v_osid, v_mostrecentscandate, v_scandate).
    2. Before doing the crazy logic, pick the low hanging fruit
    2a. if the the level2 status of the host is N, then v_level2 = 'N';
    2b. if the level2 = 'Y' and the mostrecentscandate and scandate are identical, then v_level2 = 'Y';
    2c. for all other cases, go to 3
    3. Using v_mostrecentscandate, find all table id that may hold the most recent instance of data for the host
    4. Loop through through the concatenation of that id + _base. If you find the id in those tables, then store the id for the next step.
    5. When you I find the right id, I now concatenate the id + attrdata. For the host id, I look for any rows where attribute_value in (..) and the corresponding number_value is not null.
    5b. set v_level2 = 'Y'
    5c. otherwise, set v_level2 = 'N'
    6 end the loop
    7 wash, rinse, repeat for each OS.
    create or replace package body mostrecentlevel2 as
    function getMostRecentL2 return bdna_mostrecent_level2 pipelined IS
    v_lsid NUMBER;
    v_sql VARCHAR2(5000);
    v_sql_baseid NUMBER;
    v_sql_numv NUMBER;
    v_lsidt VARCHAR2(5000);
    v_lsidt2 VARCHAR2(5000);
    v_sql_rec VARCHAR2(5000);
    v_osid NUMBER;
    v_anchor DATE;
    v_ls CHAR(2);
    v_level2 CHAR(1);
    v_mostrecentscandate DATE;
    v_scandate DATE;
    cursor getOSinfo_cur is select operatingsystem_id, scandate, mostrecentscandate, level2 from bdna_all_os;
    cursor getlsID_cur is select id from local_scan where
              ((trunc(collect_start_time) - to_date(v_anchor))*24*60*60) <= ((to_date(v_mostrecentscandate) - to_date(v_anchor))*24*60*60)
              and
              ((trunc(collect_end_time) - to_date(v_anchor))*24*60*60) >= ((to_date(v_mostrecentscandate) - to_date(v_anchor))*24*60*60);
    getOSinfo_rec getOSinfo_cur%rowtype;
    getlsID_rec getlsID_cur%rowtype;
    BEGIN
    v_ls := 'ls';
    v_anchor := '01-JAN-01';
    FOR getOSinfo_rec IN getOSinfo_cur LOOP
         v_osid := getOSinfo_rec.operatingsystem_id;
         v_mostrecentscandate := getOSinfo_rec.mostrecentscandate;
         v_scandate := getOSinfo_rec.scandate;
         IF getOSinfo_rec.level2 = 'N' THEN
              v_level2 := 'N';
         ELSIF getOSinfo_rec.level2 = 'Y' THEN
              IF v_mostrecentscandate != v_scandate THEN
                   FOR getlsID_rec IN getlsID_cur LOOP
                        v_lsid := getlsID_rec.id;
                        v_lsidt := v_ls||v_lsid;
                        v_sql := 'select id from '||v_lsidt||'_base where id = '||chr(39)||v_osid||chr(39);
                        EXECUTE IMMEDIATE v_sql into v_sql_baseid;
                        IF SQL%ROWCOUNT > 0 THEN
                             v_lsidt2 := v_lsidt;
                             v_sql := '';
                        END IF;
                   END LOOP;
                   v_sql := 'select number_value from '||v_lsidt2||'_attr_data where
                             lower(attribute_name) IN ('||chr(39)||'numcpus'||chr(39)||', '||chr(39)||'totalmemory'||chr(39)||', '||chr(39)||'cpuutilpercent'||chr(39)||', '||chr(39)||'numprocesses'||chr(39)||')
                             and
                             number_value is not NULL
                             and
                             element_id = '||chr(39)||v_osid||chr(39);
                   EXECUTE IMMEDIATE v_sql into v_sql_numv;
                   IF SQL%ROWCOUNT > 0 THEN
                        v_level2 := 'Y';
                   ELSE v_level2 := 'N';
                   END IF;
              END IF;
              v_level2 := 'Y';
         END IF;
         PIPE ROW (mostRecentLevel2Format(v_osid,v_mostrecentscandate,v_level2));
    END LOOP;
    END;
    END;
    /Now some will ask why I'm using pipelining? Again, I'm green.. I was reading around, looking for a way to make this code run as fast as possible (because it's potentially got to go through 56K records and perform the expensive work on).
    I also realize I'm not providing the type or package code, and that's because I think I'm good on that. The code above compiles just fine without errors and when it runs, it only returns 6 consecutive rows.. I'm expecting 70K lol. So I know I'm doing something wrong.
    Any thoughts?
    Oh forgot to add this is on 11g R1 Enterprise Edition
    Edited by: ErrolDC on Nov 14, 2011 4:52 PM
    Edited by: ErrolDC on Nov 14, 2011 5:07 PM

    ErrolDC wrote:
    Hey folks. I'm still green when it comes to writing PLSQL. It's fun, rewarding and very frustrating. Hence, I'm turning to the experts. If you folks can help me understand what I'm doing wrong here, I'd really appreciate it.
    The code is somewhat specific to my company's product, but I think it should be easy to read and understand what I'm doing. If not, please let me know what I can clarify.Post a complete script that peoople who aren't as familiar with the application as you are can run to re-create the problem and test their ideas. In this case, that includes CREATE TABLE and INSERT statements for the tables used (just the columns needed for this job), a query that uses the function, and the results you want from that query given the data you posted.
    All i'm trying to do is determine if the most recent iteration of data available for a particular host is a full scan or not (level2). I go about this in the following manner:
    1. get the operatingsystem id, it's scandate (preferred), the most recent scandate and it's scan status from a table of where all operating systems data lives. Loop through all the Oses
    (from this I set v_osid, v_mostrecentscandate, v_scandate).
    2. Before doing the crazy logic, pick the low hanging fruit
    2a. if the the level2 status of the host is N, then v_level2 = 'N';
    2b. if the level2 = 'Y' and the mostrecentscandate and scandate are identical, then v_level2 = 'Y';
    2c. for all other cases, go to 3
    3. Using v_mostrecentscandate, find all table id that may hold the most recent instance of data for the host
    4. Loop through through the concatenation of that id + _base. If you find the id in those tables, then store the id for the next step.
    5. When you I find the right id, I now concatenate the id + attrdata. For the host id, I look for any rows where attribute_value in (..) and the corresponding number_value is not null.
    5b. set v_level2 = 'Y'
    5c. otherwise, set v_level2 = 'N'
    6 end the loop
    7 wash, rinse, repeat for each OS.
    create or replace package body mostrecentlevel2 as
    function getMostRecentL2 return bdna_mostrecent_level2 pipelined IS
    v_lsid NUMBER;
    v_sql VARCHAR2(5000);
    v_sql_baseid NUMBER;
    v_sql_numv NUMBER;
    v_lsidt VARCHAR2(5000);
    v_lsidt2 VARCHAR2(5000);
    v_sql_rec VARCHAR2(5000);
    v_osid NUMBER;
    v_anchor DATE;
    v_ls CHAR(2);
    v_level2 CHAR(1);
    v_mostrecentscandate DATE;
    v_scandate DATE;
    cursor getOSinfo_cur is select operatingsystem_id, scandate, mostrecentscandate, level2 from bdna_all_os;
    cursor getlsID_cur is select id from local_scan where
              ((trunc(collect_start_time) - to_date(v_anchor))*24*60*60) <= ((to_date(v_mostrecentscandate) - to_date(v_anchor))*24*60*60)
              and
              ((trunc(collect_end_time) - to_date(v_anchor))*24*60*60) >= ((to_date(v_mostrecentscandate) - to_date(v_anchor))*24*60*60);
    getOSinfo_rec getOSinfo_cur%rowtype;
    getlsID_rec getlsID_cur%rowtype;
    BEGIN
    v_ls := 'ls';
    v_anchor := '01-JAN-01';
    FOR getOSinfo_rec IN getOSinfo_cur LOOP
         v_osid := getOSinfo_rec.operatingsystem_id;
         v_mostrecentscandate := getOSinfo_rec.mostrecentscandate;
         v_scandate := getOSinfo_rec.scandate;
         IF getOSinfo_rec.level2 = 'N' THEN
              v_level2 := 'N';
         ELSIF getOSinfo_rec.level2 = 'Y' THEN
              IF v_mostrecentscandate != v_scandate THEN
                   FOR getlsID_rec IN getlsID_cur LOOP
                        v_lsid := getlsID_rec.id;
                        v_lsidt := v_ls||v_lsid;
                        v_sql := 'select id from '||v_lsidt||'_base where id = '||chr(39)||v_osid||chr(39);
                        EXECUTE IMMEDIATE v_sql into v_sql_baseid;
                        IF SQL%ROWCOUNT > 0 THEN
                             v_lsidt2 := v_lsidt;
                             v_sql := '';
                        END IF;
                   END LOOP;
                   v_sql := 'select number_value from '||v_lsidt2||'_attr_data where
                             lower(attribute_name) IN ('||chr(39)||'numcpus'||chr(39)||', '||chr(39)||'totalmemory'||chr(39)||', '||chr(39)||'cpuutilpercent'||chr(39)||', '||chr(39)||'numprocesses'||chr(39)||')
                             and
                             number_value is not NULL
                             and
                             element_id = '||chr(39)||v_osid||chr(39);
                   EXECUTE IMMEDIATE v_sql into v_sql_numv;
                   IF SQL%ROWCOUNT > 0 THEN
                        v_level2 := 'Y';
                   ELSE v_level2 := 'N';
                   END IF;
              END IF;
              v_level2 := 'Y';
         END IF;
         PIPE ROW (mostRecentLevel2Format(v_osid,v_mostrecentscandate,v_level2));
    END LOOP;
    END;
    END;
    /Now some will ask why I'm using pipelining? Again, I'm green.. I was reading around, looking for a way to make this code run as fast as possible (because it's potentially got to go through 56K records and perform the expensive work on).
    I also realize I'm not providing the type or package code, and that's because I think I'm good on that. The code above compiles just fine without errors and when it runs, it only returns 6 consecutive rows.. I'm expecting 70K lol. So I know I'm doing something wrong. You're calling TO_DATE with a DATE argument. Why are you calling TO_DATE at all?
    It seems like this condition:
    ((trunc(collect_start_time) - to_date(v_anchor))*24*60*60) <= ((to_date(v_mostrecentscandate) - to_date(v_anchor))*24*60*60) is equivalent to
    TRUNC (collect_start_time) <= v_mostrecentscandateThat probably has nothing to do with why you're only getting 6 rows.

  • Make-to-order. Requirement linked to Quotation and not to Sales Order

    After we have changed our Make-To-Order Materials from unvaluated sales order stock to valuated Sales Order Stock we do face a problem with the Requirement for those Sales Orders lines which are started with a Quotation. After running MRP a planned Order is created (ok) but the Planned Order is linked to the Quotation line and not to the Sales order line. When converting the Planned order to a Production order the AFPOD-KDAUF field is the number of the Quotation and unfortunately not the Sales Order number.
    The Quotation looks ok. Item category is AGN and Schedule line category is BN (no MRP). When converting the Quotation into a Sales Order the Item category change to TAN and schedule lin category is now CP.
    The copy rules QT -> OR (VTAA) shows copying requirement = 501 Schedule qty >0 and DataT = 201 General Schedule line Data
    Anyone got a clue about where to look? ¨
    Thanks in advance
    Ken

    Hi Guys
    Thanks for your proposals.
    The Materials involved are standard items (FINI -> NORM) and our Set-up with item category TAN works perfectly when we create a Sales Order without a Quotation first. And the way we solve the problem manually right now is to convert the Quotation and delete in line item and recreate them manually. 
    I found that if i delete the requirement type in the Quotation and then convert the Quotation into a Sales Order then the Planned with be linked to the Sales Order = perfect.
    Any other ideas
    Best
    Ken

  • When I create Return Sales Order through BDC sales order doesnu2019t create.

    Deal Guru,
    When I create Return Sales Order through BDC sales order doesnu2019t create.
    It shows created sales document number but when I display this document I am getting message Document is not in database.
    After executing my BDC, message received in SAP in box : SAPSQL_ARRAY_INSERT_DUPREC
    I am receiving following message in SAP inbox for following issue.
    But when I create Return Sales Order through VA01, it is working. Please give me some idea.
    Detail Message
    Update was terminated
    System ID....   PRO
    Client.......   900
    User.....   DEVELOPER2
    Transaction..   VA01
    Update key...   4961DBF46A6B09D2E10080020A02281C
    Generated....   05.01.2009, 16:03:40
    Completed....   05.01.2009, 16:03:40
    Error Info...   00 671: ABAP/4 processor: SAPSQL_ARRAY_INSERT_DUPREC
    Regards
    Makarand

    Hi Rory
      Try this link:
       BAPI can't to create SO,But used bapi data with manual can?
    Regards
    Neha

  • How to get sales order number before saving in VA01 by using parameter

    Hi,
    Please let me know how to get sales order number in transaction VA01 before saving it by using parameter in SU3.
    I tried to set parameter in SU3 "AUN", but it is not working as required, means sales order number is not appearing before saving.
    can you please suggest how to do it?
    Thanks & Regards.
    Rahul Verulkar

    Hi,
    In case of Support project, we get the high severity issues from users and needs to be closed withn 2 hours... so what we do we get the requirement from user and checking the same in production from our id, but we can not save the sales order as we are not authorized to do the same, so in such cases it is required to get the sales order number before saving... where we can guide the users.... but actuallly it is not getting saved in the table until and unless u save it manually. It works like a material master... when u create material master, the material number appears in advance in material number field "MATNR"
    If it is possible can you please suggest step by step to work on parameter in SU3 for sales order number before saving.
    Thanks & regards,
    Rahul Verulkar

  • BDC capture sales order number

    Dear All,
    I am having one excel file which i am uploading from presentation server. Based on this file, sales order gets created through BDC Call transaction method.
    Suppose i have 10 records in flat file then 10 sales order number should gets created. But i am not able to get sales order number through call transaction method. Sales order number are not getting populated in internal table having structure BDCMSGCOLL.
    Any idea how to capture the sales order number at run time depending on how many records present in my excel file.
    I cannt go and check VBAK table for that.
    Thanks in advance for your kind help.
    Regards,
    T

    better to use BAPI Function module ,
    see the below example for capturing the order # using bdcmsgcoll structure
      CALL TRANSACTION c_va01 USING t_bdcdata MODE C_N
                                                  update 'S'
                                                 MESSAGES INTO   t_bdcmsg.
          REFRESH  t_tcdata.
         CALL FUNCTION 'FORMAT_MESSAGE'
           EXPORTING
                v2        = sy-msgv2
           IMPORTING
                msg       = g_vbeln
           EXCEPTIONS
                not_found = 1
                OTHERS    = 2.
      IF sy-subrc = 0.
        g_vbeln = sy-msgv2.
      ENDIF.
    Reward Points if it is helpful
    Thanks
    Seshu

  • Billing document should not be cancelled after creating return sales order

    Hi All,
    Billing document should not be cancelled after creating return sales order with reference to billing document. Please suggest configuration settings on the same.
    Sudheer.

    Hi,
    In SAP, when the sub-sequent document is existing , we can not cancel the preceeding document. Therefore if you want to cancel the billing document you need to calcel the documents which are created with reference to that.
    Check and confirm.
    Regards,
    Ravi Duggirala

  • How to get sales order number when it is created in VA01

    hai experts,
    i have a requirement , when i create a sales order using transaction VA01 and save the transaction number , after saving i want to catch the sales order number and use in some other fucntion moudle, how can i do that  , should i use the events or any other methods to do the same
    regards
    m.a

    You can call you Z function module either from the workflow or from a BADI' where you can access the newly created sales order the BADi name is BADI_SD_V46H0001 and the method that you need to check is
    EXIT_SAPLV46H_003     Customer Function when Creating/Changing Header
    You can even call the FM from workflow too, but aganin for tht you need to create a ZBOR, if at all you are using a standard Business object and you hvae to create a new task and include that new task in the workflow by creating a new background Activity step. which I personally feel that you eed to put some more effort to fix the issue.
    Instead it is simple and sweet to call that function module from the Method which mentioned. where you can acess the sales document number tooo check int he method parameters.

  • Not able to Create Credit Memo During Return Sales Order

    Hi Guru's,
    Need your help in the below problem:-
    While Creating Return Sales Order it give us Order No with delivery no. and then finally I am able to do VL02N where I did Post Good Return sucessfully and also check using MB51 that goods got return.
    But when we try to create Credit Memo using VF01 I got the below message in log.
    Error Log
                 0060000799 000000 "Create billing document" not allowed (User Status LKD, object VB0060000799000000)
                LongText
                Technical data   ))))))))
    I have checked all copy control including Iteam Category etc etc all are in place.
    Looking for your help.
    Thanks
    Best Regards
    Bidhan Konar

    Thanks Krishna,
    Thanks for the solution. Find below the steps which i follow:-
    Go to Tcode VA02, Use the sale order reference and execute. From top menu bar, click on "Goto -- Header -- Status. Then again click on "Object Status" and when check I find that lock is there:- A radio button checked at -- 10 LKD Locked and change it to
    --20 REL Released and SAVE. Finally working.
    Thanks
    BR
    Bidhan
    Edited by: Bidhan Konar on Jun 3, 2010 8:35 PM

Maybe you are looking for