Add Line To Sales Order

Hi all
I have a requirement to add a new line to a sales order is certain circumstances in VA01 / VA02.
If the product that is entered is discontinued I want a new line with an alternative product to be entered onto the sales order, I am looking to do this in the user exit MV45AFZZ form USEREXIT_MOVE_FIELD_TO_VBAP as this is where the check for the discontinued status is done.
I have tried adding some info into XVBAP but this doesn't then show in the sales order screen.
Any help will be greatly received.
Thanks
Matthew

I don't currently have any code as i'm not sure where to start!
in the userexit we do a check of the material status and currently just mark it as discontinued.
we want to then add a new line to the sales order with an alternative material (this is populated in a table) while the user is still processing the order in VA01 / VA02.
thanks

Similar Messages

  • How to delete header condtion line of sales order by BAPI

    Hi,
    I want to delete the condtion line of sales order header using BAPI "BAPI_SALESORDER_CHANGE",
    it is work well in item level condition type, but it is not work for header condition type. show error message "missing item number" since of pass item number "000000" for header condition line.
    Below is reference source code, thanks in advance.
    *& Report  ZTEST_BAPI_SO_DELETECONDLINE
    *& Sample program to call BAPI_SALESODRER_CHANGE to
    *& delete condition line of so line item
    REPORT  ZTEST_BAPI_SO_DELETECONDLINE.
    ***--- Structures for create BAPI
    DATA: SALESDOCUMENT LIKE BAPIVBELN-VBELN.
    DATA: ORDER_HEADER_INX LIKE BAPISDH1X,
          BEHAVE_WHEN_ERROR LIKE BAPIFLAG-BAPIFLAG,
          SIMULATION LIKE BAPIFLAG-BAPIFLAG.
    DATA: BEGIN OF ORDER_ITEM_IN OCCURS 2.
            INCLUDE STRUCTURE BAPISDITM.
    DATA: END OF ORDER_ITEM_IN.
    DATA: BEGIN OF ORDER_ITEM_INX OCCURS 2.
            INCLUDE STRUCTURE BAPISDITMX.
    DATA: END OF ORDER_ITEM_INX.
    DATA: BEGIN OF SCHEDULE_LINES OCCURS 2.
            INCLUDE STRUCTURE BAPISCHDL.
    DATA: END OF SCHEDULE_LINES.
    DATA: BEGIN OF SCHEDULE_LINESX OCCURS 2.
            INCLUDE STRUCTURE BAPISCHDLX.
    DATA: END OF SCHEDULE_LINESX.
    DATA: BEGIN OF ORDER_CFGS_REF OCCURS 2.
            INCLUDE STRUCTURE BAPICUCFG.
    DATA: END OF ORDER_CFGS_REF.
    DATA: BEGIN OF ORDER_CFGS_INST OCCURS 2.
            INCLUDE STRUCTURE BAPICUINS.
    DATA: END OF ORDER_CFGS_INST.
    DATA: BEGIN OF ORDER_CFGS_VALUE OCCURS 2.
            INCLUDE STRUCTURE BAPICUVAL.
    DATA: END OF ORDER_CFGS_VALUE.
    DATA: BEGIN OF CONDITIONS_IN OCCURS 2.
            INCLUDE STRUCTURE BAPICOND.
    DATA: END OF CONDITIONS_IN.
    DATA: BEGIN OF CONDITIONS_INX OCCURS 2.
            INCLUDE STRUCTURE BAPICONDX.
    DATA: END OF CONDITIONS_INX.
    DATA: BEGIN OF EXTENSIONIN OCCURS 2.
            INCLUDE STRUCTURE BAPIPAREX.
    DATA: END OF EXTENSIONIN.
    DATA: BEGIN OF RETURN OCCURS 2.
            INCLUDE STRUCTURE BAPIRET2.
    DATA: END OF RETURN.
    DATA: TMP_POSNR  LIKE VBAP-POSNR,
          L_KNUMV    LIKE VBAK-KNUMV,
          L_KSCHL    LIKE KONV-KSCHL,
          L_STUNR    LIKE KONV-STUNR,
          L_ZAEHK    LIKE KONV-ZAEHK.
    ***--- Selection
    PARAMETERS: P_VBELN LIKE VBAK-VBELN OBLIGATORY MEMORY ID AUN DEFAULT '7000510', "'0001007443', " SO
                P_POSNR LIKE VBAP-POSNR OBLIGATORY DEFAULT '000000' , " so item
                P_CONDN LIKE  KONV-KSCHL  DEFAULT 'ZOSP',    " condition type
                P_CONDI LIKE  KONV-ZAEHK  DEFAULT '01',      " Condition item number
                P_TEST  AS CHECKBOX DEFAULT 'X'.             " test mode
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT         = P_VBELN
        IMPORTING
          OUTPUT        = P_VBELN.
      CLEAR: L_KNUMV.
      SELECT SINGLE KNUMV INTO L_KNUMV
      FROM VBAK
      WHERE VBELN  = P_VBELN.
      IF SY-SUBRC = 0.
        CLEAR: L_KSCHL,L_ZAEHK,L_STUNR.
        SELECT SINGLE KSCHL ZAEHK STUNR INTO (L_KSCHL, L_ZAEHK, L_STUNR)
        FROM KONV
        WHERE KNUMV = L_KNUMV
          AND KPOSN = P_POSNR
          AND ZAEHK = P_CONDI
          AND KSCHL = P_CONDN.
        IF SY-SUBRC <> 0.
          WRITE:/ 'Condition type or condition item is not exist.'.
          EXIT.
        ENDIF.
      ELSE.
        WRITE:/ 'Sales order number is not exist'.
        EXIT.
      ENDIF.
    IF L_ZAEHK IS INITIAL.
          WRITE:/ 'Condition type or condition item is not exist.'.
          EXIT.
    ENDIF.
    SALESDOCUMENT = P_VBELN.     " Sales order number
    ORDER_HEADER_INX-UPDATEFLAG = 'U'.   "U = change sales order
    ***Item Data
    ORDER_ITEM_IN-ITM_NUMBER = P_POSNR.
    APPEND ORDER_ITEM_IN.
    ORDER_ITEM_INX-UPDATEFLAG = 'U'.   "I = add, U= update, D=delete
    ORDER_ITEM_INX-ITM_NUMBER = P_POSNR.
    APPEND ORDER_ITEM_INX.
    ***--- Begin delete a condition line
    ***--- Make sure to use update flag 'D'. Here I = add, U= update, D=delete
    CLEAR: CONDITIONS_IN,CONDITIONS_INX.
    REFRESH: CONDITIONS_IN,CONDITIONS_INX.
    CONDITIONS_IN-ITM_NUMBER = P_POSNR.
    CONDITIONS_IN-COND_ST_NO = L_STUNR.
    CONDITIONS_IN-COND_COUNT = L_ZAEHK.
    CONDITIONS_IN-COND_TYPE  = L_KSCHL.
    APPEND CONDITIONS_IN.
    CONDITIONS_INX-UPDATEFLAG = 'D'.
    CONDITIONS_INX-ITM_NUMBER  = P_POSNR.
    CONDITIONS_INX-COND_ST_NO  = L_STUNR.
    CONDITIONS_INX-COND_COUNT  = L_ZAEHK.
    CONDITIONS_INX-COND_TYPE   = L_KSCHL.
    APPEND CONDITIONS_INX.
    ***--- End delete a condition line
    BEHAVE_WHEN_ERROR = 'P'.
    SIMULATION = P_TEST.   " Test mode or not
    "=== call BAPI
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        SALESDOCUMENT               = SALESDOCUMENT
        ORDER_HEADER_INX            = ORDER_HEADER_INX
        LOGIC_SWITCH                = '    U'
      TABLES
        RETURN                      = RETURN
        ORDER_ITEM_IN               = ORDER_ITEM_IN
        ORDER_ITEM_INX              = ORDER_ITEM_INX
        CONDITIONS_IN               = CONDITIONS_IN
        CONDITIONS_INX              = CONDITIONS_INX .
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    WRITE: / 'Return code =', SY-SUBRC.
    SKIP 1.
    LOOP AT RETURN.
      WRITE: / RETURN-MESSAGE.
    ENDLOOP.
    Edited by: hank jiang on May 21, 2010 5:07 AM
    Edited by: hank jiang on May 21, 2010 5:25 AM
    Edited by: hank jiang on May 21, 2010 5:27 AM

    SALESDOCUMENT = P_VBELN.     "Sales order number
    ORDER_HEADER_INX-UPDATEFLAG = 'U'.   "U = change sales order
    ORDER_ITEM_IN-ITM_NUMBER = P_POSNR.
    APPEND ORDER_ITEM_IN.
    ORDER_ITEM_INX-UPDATEFLAG = 'U'.   "I = add, U= update, D=delete
    ORDER_ITEM_INX-ITM_NUMBER = P_POSNR.
    APPEND ORDER_ITEM_INX.
    "Begin delete a condition line
    "Make sure to use update flag 'D'. Here I = add, U= update, D=delete
    CLEAR: CONDITIONS_IN,CONDITIONS_INX.
    REFRESH: CONDITIONS_IN,CONDITIONS_INX.
    CONDITIONS_IN-ITM_NUMBER = P_POSNR.
    CONDITIONS_IN-COND_ST_NO = L_STUNR.
    CONDITIONS_IN-COND_COUNT = L_ZAEHK.
    CONDITIONS_IN-COND_TYPE  = L_KSCHL.
    APPEND CONDITIONS_IN.
    CONDITIONS_INX-UPDATEFLAG = 'D'.
    CONDITIONS_INX-ITM_NUMBER  = P_POSNR.
    CONDITIONS_INX-COND_ST_NO  = L_STUNR.
    CONDITIONS_INX-COND_COUNT  = L_ZAEHK.
    CONDITIONS_INX-COND_TYPE   = L_KSCHL.
    APPEND CONDITIONS_INX.
    "End delete a condition line
    BEHAVE_WHEN_ERROR = 'P'.
    SIMULATION = P_TEST.   " Test mode or not
    "=== call BAPI
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        SALESDOCUMENT               = SALESDOCUMENT
        ORDER_HEADER_INX            = ORDER_HEADER_INX
        LOGIC_SWITCH                = '    U'
      TABLES
        RETURN                      = RETURN
        ORDER_ITEM_IN               = ORDER_ITEM_IN
        ORDER_ITEM_INX              = ORDER_ITEM_INX
        CONDITIONS_IN               = CONDITIONS_IN
        CONDITIONS_INX              = CONDITIONS_INX .
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    WRITE: / 'Return code =', SY-SUBRC.
    SKIP 1.
    LOOP AT RETURN.
      WRITE: / RETURN-MESSAGE.
    ENDLOOP.

  • Ignore the number of schedule lines in sale order item when run MRP

    Dear All,
    I have a problem when I create production order (discrete manufacturing)
    When I create a sale order with one sale order item and 3 schedule lines for this sale order item.
    After that, I run MRP for this sale order, what I get is 3 planned orders for 3 schedule lines. It means that I will have 3 production orders for 1 sale order item.
    I want  create one production order for one sale order item whatever the number of schedule lines in sale order item.
    I think I have to config in MRP. Please help me.
    Thanks in advance

    Dear
    Check in OPPQ then look in Master data Availability Check & strategy for material also check whether u have maintained strategy for same material and see did u extended sales views for other material
    As u said 3 schedule lines for this sale order item check whether u have extended sales views for next material
    With Regards
    Pushpalas

  • How to deactivate schedule line in sales order

    hi friends,
    how can i deactivate the schedule line in sales order so that we can deliver the sales order after the schedule date. i can uderstand that system is not allowing before schedule date. but what if i want to deliver after that.
    Thanks in advance.
    Regards,
    Solomon

    hi,
    this is to inform you that,
    here you need to switch off:
    schedule lines allowed
    in schedule lines control data - remove or un check - availability/TOR
    In SPRO - Availability Check settings.
    but i have a question here:
    what is the business logic.
    do you want to do the same with all the sales orders or not.
    please update the forum
    then answer will be different
    balajia

  • How we add & grandtotal of sales order report in alv

    hi guru how we add & grandtotal of sales order report in alv
    regards
    subhasis

    hi subhasis,
    since u want the grand total in ALV use the following code...
    clear gs_fieldcat.
    gs_fieldcat-fieldname = field.
    gs_fieldcat-tabname = DB table
    gs_fieldcat-seltext_m = text.
    gs_fieldcat-do_sum = 'X'
    gs_fieldcat-datatype = data type (Curr or Quant)
    gs_fieldcat-ref_fieldname = reference field name
    gs_fieldcat-ref_tabname  = reference table name
    append gs_fieldcat to gt_fieldcat.
    hope this will work...
    please reward points in case usefull
    regards,
    prashant

  • Add buttons in Sales Order's Addtional Data B Tab

    Hi All,
    I want to add buttons in Sales Order's Additional Data B tab. I had try to draw a creen in painter and push a button in the screen, also assign a fcode to it.
    I had try to test the button, and I find that, it could work, but after it's action, a error msg give out and said there are no this request function.
    I think it may cause by the fcode passing between screen. However, I don't know how to fix it. Any sample coding could for me reference?
    Thanks!

    Hi,
    yes u can add the button  with Fcode on Additional data B screen.But u have write the code in the PAI of the screen,inorder to do something,for that u need to have accesskey also...i hope while adding fields to Additional data B screen u ahve used teh accessskey for adding..zfields
    Regards,
    Nagaraj

  • DI to Cancel Lines on Sales Order

    Hi,
    We're running SBO 2007A PL37 and I was wondering if there's a way to use the DI to cancel lines off sales orders if we have the order numbers and item codes?  We would want to do it in bulk... so feed in a whole lot of orders and items and have it cancel them all off rather than us having to go in and do them all individually.
    Thanks,
    Michael
    Edited by: Michael Boucher on Oct 30, 2008 1:41 AM

    Yes, it is possible. The code for closing one row is:
                           Dim obj As SAPbobsCOM.Documents
                            obj = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
                            obj.GetByKey(docentry)
                            obj.Lines.SetCurrentLine(linenum)
                            obj.Lines.LineStatus = SAPbobsCOM.BoStatus.bost_Close
                            err_code = obj.Update()
    In your case go in cycle through all lines in order and compare the itemcode in line and itemcode you have and if its same, close the row.

  • Add items to sales order by "Item details: configuration".

    Hi Experts.
    I need to add item to sales order but not in normal way but like this:
    1. Mark higher level item
    2. Click: Item details configuration
    3. Click: Result
    4. Click: Insert
    5. choose material.
    Do you know any FM for this?

    Hi
    If you didn't get anything then why don't you try with creating a recording in SM35 and call that recording. We did somehow similar thing. We couldn't find any function module and my ABAPER asked me to create recording in SM35 and he converted that into some BAPI or may be he called directly that recording. If you are ABAPER then try this and if you are functional like me then talk to your ABAPER.
    Thank$

  • Add field to Sales Order line item

    I need to add a field to Sales Order line item, can you tell me a user exit??

    Hi,
    You can a new field in the additional data B tab of the sales order line item..
    Check the program SAPMV45A and screen number 8459
    Thanks,
    Naren

  • Add text for sales order to A/R line items

    Hello Experts:
    Does anybody know of a way to add the field VBRP-ARKTX (Short text for sales order item) to the A/R line item display (FBL5N

    HI,
    Please explore the option of using a USER-EXIT at the time of creation of Accounting Document from the Billing document. Looks like the field you are interested in is not automatically transferred from the billing interface to the accounting interface.
    Regards

  • How to insert new schedule line in Sales order using BAPI

    Hi All,
    I am using the below code to add a new line in the schedules line of a existing sales order.But i am not getting the extra line after running the report.
    Kindly guide me in how to achieve this.
    thanks and regards
    shilpa
    REPORT  Z_VA32_EDI1.
    data: v_vbeln type BAPIVBELN-VBELN,
          wa_order_header type BAPISDH1X,
          i_sch_line type standard table of BAPISCHDL with header line,
          i_sch  type standard table of BAPISCHDLX with header line,
          i_return type standard table of BAPIRET2 with header line.
    v_vbeln = '0030001227'.
    wa_order_header-UPDATEFLAG = 'U'.
    i_sch-ITM_NUMBER = '000010'.
    i_sch-UPDATEFLAG  = 'I'.
    i_sch-REQ_DATE  = 'X'.
    i_sch-REL_TYPE = 'X'.
    i_sch-PLAN_SCHED_TYPE = 'X'.
    i_sch-REQ_QTY     = 'X'.
    append i_Sch.
    i_sch_line-ITM_NUMBER = '000010'.
    i_sch_line-REQ_DATE  = '20080127'.
    i_sch_line-REL_TYPE = '2'.
    i_sch_line-PLAN_SCHED_TYPE = '2'.
    i_sch_line-REQ_QTY     = '65'.
    append i_Sch_line.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        salesdocument               = v_vbeln
      ORDER_HEADER_IN             =
        order_header_inx            = wa_order_header
      SIMULATION                  =
      BEHAVE_WHEN_ERROR           = ' '
      INT_NUMBER_ASSIGNMENT       = ' '
      LOGIC_SWITCH                =
      NO_STATUS_BUF_INIT          = ' '
      tables
        return                      = i_Return
      ORDER_ITEM_IN               =
      ORDER_ITEM_INX              =
      PARTNERS                    =
      PARTNERCHANGES              =
      PARTNERADDRESSES            =
      ORDER_CFGS_REF              =
      ORDER_CFGS_INST             =
      ORDER_CFGS_PART_OF          =
      ORDER_CFGS_VALUE            =
      ORDER_CFGS_BLOB             =
      ORDER_CFGS_VK               =
      ORDER_CFGS_REFINST          =
       SCHEDULE_LINES              = i_sch_line[]
       SCHEDULE_LINESX             = i_sch[]
      ORDER_TEXT                  =
      ORDER_KEYS                  =
      CONDITIONS_IN               =
      CONDITIONS_INX              =
      EXTENSIONIN                 =
      NFMETALLITMS                =
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'.
    write: 'Done'.

    hi,
    pass the values 'x' to the bellow structure for all the fields that u want use and provide the item no ,schedule line no.
    SCHEDULE_LINESX

  • Error: Can't Add a New Sales Order: -10  Exchange rate not updated,

    Hi,
    I'm trying to add several Sales Orders contained in a XML document, whose root element corresponds to the Sales Person created that XML. Anyway, after I fill a Sales Order Document Object with the info in the XML and try to add it the following error appears: "Exchange rate not updated  [RDR1.U_Desc4][line: 2] , 'USD'" Which is strange because this company handles most of its transactions in MXP Currency. I will post the piece of Code that fills the object hoping it helps:
    For Each xndSalesOrder In xmlSalesOrder.Item("SalesMan").ChildNodes
                    oSalesOrder = Me.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
                    oSalesOrder.DocType = SAPbobsCOM.BoDocumentTypes.dDocument_Items
                    With xndSalesOrder.Item("HEADER")
                        oSalesOrder.CardCode = .Item("Deudor").InnerText
                        oSalesOrder.DocDate = DateTime.Parse(.Item("FechaCont").InnerText, Nothing)
                        oSalesOrder.DocDueDate = DateTime.Parse(.Item("FechaEnt").InnerText, Nothing)
                        oSalesOrder.Comments = .Item("Observaciones").InnerText
                        oSalesOrder.DocRate = 11
                        oSalesOrder.DocCurrency = "MXP"
                        'oSalesOrder.ContactPersonCode = .Item("Contacto").InnerText
                        'User Fields
                        oSalesOrder.UserFields.Fields.Item("U_RefOV").Value = _
                            xndSalesOrder.Attributes.Item(0).InnerText
                        oSalesOrder.UserFields.Fields.Item("U_Referencia2").Value = .Item("Referencia").InnerText
                        oSalesOrder.UserFields.Fields.Item("U_FechaReferencia").Value = _
                            DateTime.Parse(.Item("FechaReferencia").InnerText, Nothing)
                    End With
                    With xndSalesOrder.Item("LINEAS")
                        For Each xndLinea In .ChildNodes
                            If intContLineas >= 1 Then                             oSalesOrder.Lines.Add()
                            End If
                            oSalesOrder.Lines.ItemCode = xndLinea.Item("Articulo").InnerText
                            oSalesOrder.Lines.Quantity = CDbl(xndLinea.Item("Cantidad").InnerText)
                            oSalesOrder.Lines.Price = CDbl(xndLinea.Item("Precio").InnerText)
                            oSalesOrder.Lines.TaxCode = xndLinea.Item("Impuesto").InnerText
                            oSalesOrder.Lines.DiscountPercent = CDbl(xndLinea.Item("DescuentoTotal").InnerText)
                            oSalesOrder.Lines.SalesPersonCode = xmlSalesOrder.Item("SalesMan").Attributes.Item(0).InnerText
                            oSalesOrder.Lines.Currency = "MXP"
                            'User Fields
                            oSalesOrder.Lines.UserFields.Fields.Item("U_Promocion").Value = _
                                xndLinea.Item("AplicaProm").InnerText 'Valores posibles: Si, No
                            oSalesOrder.Lines.UserFields.Fields.Item("U_Desc1").Value = _
                                CInt(xndLinea.Item("Descuento1").InnerText)
                            oSalesOrder.Lines.UserFields.Fields.Item("U_Desc2").Value = _
                                CInt(xndLinea.Item("Descuento2").InnerText)
                            oSalesOrder.Lines.UserFields.Fields.Item("U_Desc3").Value = _
                                CInt(xndLinea.Item("Descuento3").InnerText)
                            'If xndLinea.Item("AplicaProm").InnerText = "Si" Then
                            oSalesOrder.Lines.UserFields.Fields.Item("U_Desc4").Value = _
                                CInt(xndLinea.Item("Descuento4").InnerText) 'This is the UDF that's giving me problems!!!
                            'End If
                            intContLineas += 1
                        Next
                       If oSalesOrder.Add() <> 0 Then
                            Me.Company.GetLastError(intErrorAdd, sErrMsgAdd)
                            If (0 <> intErrorAdd) Then
                                FillLog("Sales Order Error: " & CStr(intErrorAdd) & "," & sErrMsgAdd)
                            End If
                            xmlLogSalesOrder.Item
                        End If
                    End With
                Next
    If you look at the code I've even tried the solution of hardcoding the DocRate and the Currency as seen in a similar post about the DTW.
    Sorry if code is in Spanglish, its quite late around here. I hope you can help me because it's kind of an urgent matter and I can't seem to find a solution for it.
    Other useful data: SAP BO 2005 Patch 4.
    Thanks in advance...
    Alfredo Gargari

    Hi Alfredo,
    Have you tried to add the same salesorder by hand, I think you wil first get a form with exchange rates.
    I think you should add a check to your program to check for an update currency rate (the sbobob function GetCurrencyRate does this for you).
    GetCurrencyRate MethodDescription
    Returns a Recordset object that contains the currency rate for a specified date and currency code.
    See Currency Bobs sample.
    Syntax
    Public Function GetCurrencyRate( _
       ByVal Currency As String, _
       ByVal Date As Date _
    ) As Recordset
    Parameters
    Currency
    Specifies the currency code.
    Date
    Specifies the date for the currency exchange rate.
    Return Type
    A Recordset object that contains one field named CurrencyRate that holds the rate value.
    SAP Business One returns 0 if the system cannot find the exchange rate.
    Regards,
    Ad

  • Convert multiple lines for same material into a single line in Sales Order

    Our company has a requirement, they want if there are multiple lines exist for the same material in sales order and purchase order then it should become like one single line.
    10    35712  5pcs
    20   100885  10 pcs
    30   35712   10pcs
    Now our requirement is that should  become a single line like this
    10  35712  15pcs.
    I will   Text Removed.
    Regards,
    Khawar
    Message was edited by: G Lakshmipathi
    Please dont add such text in your post

    Now our requirement is that should  become a single line like this
    Where?  Meanwhile, I hope, you would have searched in SCN / Google before posting as it is a basic question and needs to be locked.  If searched, specify clearly what efforts you took to find out solution to your requirement.
    G. Lakshmipathi

  • DI cannot add Previous Period Sales Order

    Hi all,
    Currently, I had a big problem. My client is running SAP B1 2004.2B PL 50 with DI API installed. They are running a very simple customize program to add Sales Order into SAP B1. The customize program simply read a text file (Tab delimiter) and in turn create a Sales Order. It was working fine when their SAP B1 2004.2B is in Patch Level 15. However, after the upgrade to Patch Level 50, the customize program prompt error while adding Sales Order. Error Message: "Date deviates from permissible range [ORDR.DocDate]"
    Anyone have any idea why this occurs? My client cannot downgrade back to lower patch as PL 50 solve the bug on Closing Production Order. Furthermore, it is a very simple coding, just that this PL 50 do not allow posting of eariler documents.
    Anyone can help?
    Below is the coding:
    Private Sub TESTING()
        Dim vcmp As SAPbobsCOM.Company
        Set vcmp = New SAPbobsCOM.Company
        Dim err As Long
        Dim errmsg As String
        With vcmp
            .CompanyDB = "TestingDB"
            .Server = "Server"
            .DbUserName = "sa"
            .DbPassword = "sa"
            .UserName = "manager"
            .Password = "manager"
            .LicenseServer = "Server"
            err = .Connect
            If err <> 0 Then
                Call .GetLastError(err, errmsg)
                MsgBox (errmsg)
            Else
                Dim oSO As SAPbobsCOM.Documents
                Set oSO = .GetBusinessObject(oOrders)
                oSO.CardCode = "CH0002"
                oSO.DocDate = "17/10/2006"
                oSO.DocDueDate = "17/10/2006"
                oSO.DocType = dDocument_Service
                oSO.Lines.AccountCode = "_SYS00000000377"
                oSO.Lines.Price = 100
                err = oSO.Add
                If err <> 0 Then
                    Call vcmp.GetLastError(err, errmsg)
                    MsgBox (errmsg)
                Else
                    MsgBox "Successful"
                    vcmp.Disconnect
                End If
            End If
        End With
    End Sub

    Hi there,
    Answer to your questions:
    1) The period I wanted to post to is set to current/default period.
    2) All the period is active and not locked.
    3) The document date entered is within the period I set to current/default period. (Meaning I want to post a Sales Order in period 2006/08 and the current period had set default to 2006/08, and the document date is in 01/08/2006 (dd/mm/yyyy), but the system date now is 06/11/2006.)
    Now my question is even though I did not set my posting period to the period that I want to post the Sales Order. As long as the period is active and is not locked, I should be able to use DI to post the Sales Order right? When my SAP B1 2004.2B is in PL 25, I can do it without any problem. After I upgraded to PL50 and even PL55, I cannot even post it.
    Lastly, when using DI I shouldn't be bothered about setting the posting period to the correct posting period as DI do not have this function and the customize program is not run within SAP B1.
    Anyone can help?

  • Printing last delivery date in schedule lines for sales order

    Hi!
    We should create a sales order with more then one schedule line. This schedule lines are only for internal use (only to plan our production) and not for printing on the sales order paper. Only the last line is the real delivery date which should be printed on the sales order paper. Now I'm searching for a solution to print only this schedule line.
    Have anyone a good idea?
    Thanks
    Markus

    Hi, 
    Select <required fields> from VBEP
    into table <itab>
    where vbeln = <order number>.
    sort itab by posnr etenr descending.
    read table itab into wa index 1.
    contents of work area will have the last schedule line details of order.
    Regards
    Vinod

Maybe you are looking for

  • Various questions related to itunes that was not able to see around

    well...i will try to be quick and as clear as possible 1) i have a macbook, where i download podcasts and i use it to listen to my collection of music, saved on an external drive....now i have no more space there, so i was thinking to move on externa

  • NW Sever 6.5 sp8 Abends during copying or moving files

    Hello, I'm not sure why my server has been abending recently. No changes have been made to it. I am posting most of the log file and hopefully, someone can help me or point me in the right direction on how to fix this issue. Thank you. Server WAGNER_

  • Create a wishlist (for Barbiegirl0056)

    Hey there, I can half see your thread but it wont work properly, do not know why. Here is your answer. It is built in.Favourites You can add Favourites to products using the tag which will allow someone who is logged in to add this. In their logged i

  • SFV file association in KDE trouble getting it setup properly

    Im having trouble getting parano the program I use to check sfvs to actually associate with sfv files. If right click on a sfv file and go to properties and change it to parano it changes it for all txt files and everything. Then when tinkering I del

  • WMI Script resume a suspended messag

    Hi All, Can anyone help me with a WMI script to resume a suspended message (resumable) for a messaging instance of a particular receive port.