Create Purchase Order based on Sales Order through DI

Hi All,
As per my requirment i need to create PO based on Sales Order by Using DI object.
By using the UI i am able to create a PO. i.e,.  in the Sales Order Form , in logistic tab when the purchase check box is checked and when the SO is added there is a work around form poped up where we give the vendor information and create PO.
Code:
      objPurchaseOrder = objSBOAPI.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
                                    objPurchaseOrder.CardCode = "V1010"
                                        objPurchaseOrder.CardName = "Far East Imports"
                                        objPurchaseOrder.DocDate = "02/24/05"
                                        objPurchaseOrder.DocDueDate = "02/24/05"
                                    objPurchaseOrder.Lines.BaseType = "17"
                                    objPurchaseOrder.Lines.BaseLine = "0"
                                     objPurchaseOrder.Lines.BaseEntry = "35"  
                                         objPurchaseOrder.Add()                                                          
Error Description : Base Doc Type donot match with target Doc type
PLease help me
Thanks and Regards
Sandeep

hi,
try removing the double quotes for basetype, baseline, baseentry.
if it doesn't solve the problem
make sure that you are assigning the docentry only but not the docnum of the sales order to the purchase order lines' baseentry.
rgds,laks.

Similar Messages

  • Can we create purchase order through report programming?

    hi experts.....
    can we create purchase order through report programming?If yes plz give me the thread details?

    Hi,
    Use this code in a program by using a BAPI function module
    Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
    loop at i_header.
        header-ref_1         = i_header-legacy.
        headerx-ref_1        = c_x.
        header-doc_type      = i_header-bsart.
        headerx-doc_type     = c_x.
        header-comp_code     = i_header-bukrs.
        headerx-comp_code    = c_x.
        header-purch_org     = i_header-ekorg.
        headerx-purch_org    = c_x.
        header-pur_group     = i_header-ekgrp.
        headerx-pur_group    = c_x.
        header-vendor        = i_header-lifnr.
        headerx-vendor       = c_x.
        concatenate i_header-bedat+4(4)
                    i_header-bedat+0(2)
                    i_header-bedat+2(2)
                    into header-doc_date.
        headerx-doc_date     = c_x.
        header-created_by    = i_header-ernam.
        headerx-created_by   = c_x.
        header-currency      = i_header-waers.
        headerx-currency     = c_x.
        concatenate i_header-kdatb+4(4)
                    i_header-kdatb+0(2)
                    i_header-kdatb+2(2)
                    into header-vper_start.
        headerx-vper_start   = c_x.
        loop at i_items where legacy = i_header-legacy.
          item-po_item            =  i_items-ebelp.
          itemx-po_item           =  i_items-ebelp.
          itemx-po_itemx          =  c_x.
          if i_header-bsart = 'NB'.
            item-material            =  i_items-ematn.
            itemx-material           =  c_x.
            schedule-quantity        =  i_items-menge * 1000.
            schedulex-quantity       =  c_x.
          else.
            item-short_text          = i_items-ematn.
            itemx-short_text         = c_x.
            item-matl_group          = '1000'.
            itemx-matl_group         = c_x.
            schedule-quantity        =  '1'.
            schedulex-quantity       =  c_x.
          endif.
          item-plant               =  i_items-werks.
          itemx-plant              =  c_x.
          schedule-po_item         = i_items-ebelp.
          schedule-sched_line      = '1'.
          schedulex-po_item        = i_items-ebelp.
          schedulex-sched_line     = '1'.
          schedulex-po_itemx       = c_x.
          schedulex-sched_linex    = c_x.
          concatenate  i_items-eildt+0(2)
                       i_items-eildt+2(2)
                       i_items-eildt+4(4)
                       into schedule-delivery_date.
          schedulex-delivery_date  =  c_x.
          item-price_unit          =  i_items-peinh * 100.
          itemx-price_unit         =  c_x.
          item-tax_code            =  i_items-mwskz.
          itemx-tax_code           =  c_x.
          item-shipping            =  i_items-evers.
          itemx-shipping           =  c_x.
          account-po_item          = i_items-ebelp.
          accountx-po_item         = i_items-ebelp.
          accountx-po_itemx        = c_x.
          if i_header-bsart = 'FO'.
            item-pckg_no  = sy-tabix.
            itemx-pckg_no = 'X'.
            limits-pckg_no        = sy-tabix.
            limits-limit          = i_items-overalllimit.
            limits-exp_value      = i_items-expectedoverall.
            posrvaccessvalues-pckg_no    = sy-tabix.
            posrvaccessvalues-line_no    = '0'.
            posrvaccessvalues-serno_line = '00'.
            posrvaccessvalues-percentage = '100.0'.
            posrvaccessvalues-serial_no  = '01'.
            account-serial_no     = '1'.
            accountx-serial_no    = '1'.
            accountx-serial_nox   = c_x.
            account-quantity  = '1'.
            accountx-quantity = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-kostl
              importing
                output = account-costcenter.
            accountx-costcenter   = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-sakto
              importing
                output = account-gl_account.
            accountx-gl_account   = c_x.
            item-acctasscat       = i_items-knttp.
            itemx-acctasscat      = c_x.
            item-item_cat         = i_items-epstp.
            itemx-item_cat        = c_x.
          endif.
          append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
          clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
        endloop.
        call function 'BAPI_PO_CREATE1'
          exporting
            poheader                     = header
            poheaderx                    = headerx
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
            importing
            exppurchaseorder             = ponumber
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
            tables
            return                       = return
            poitem                       = item
            poitemx                      = itemx
    *   POADDRDELIVERY               =
            poschedule                   = schedule
            poschedulex                  = schedulex
            poaccount                    = account
    *   POACCOUNTPROFITSEGMENT       =
            poaccountx                   = accountx
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
            polimits                     = limits
    *   POCONTRACTLIMITS             =
    *   POSERVICES                   =
       posrvaccessvalues            = posrvaccessvalues.
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
        if ponumber eq space.
          loop at return where type = 'E'.
            clear buffer.
            move-corresponding return to e_return.
            concatenate i_header-legacy e_return into buffer.
            transfer buffer to p2_file.
          endloop.
          move-corresponding i_header to i_eheader.
          transfer i_eheader to p3_file.
          loop at i_items where legacy = i_header-legacy.
            move-corresponding i_items to i_eitems.
            transfer i_eitems to p4_file.
          endloop.
        else.
          commit work and wait.
        endif.
        clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
        refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
      endloop.
      close dataset p2_file.
      close dataset p3_file.
      close dataset p4_file.
    Regards
    Krishna

  • Create Purchase Order through EDI

    Hello Everybody,
    I want to know how to create Purchase order through EDI. I will receive text file from third party system. I have made most of the configuration related to EDI like Port -File, Partner Function etc. I am using message type PORDCR and Idoc type PORDCR05.
    But i do not know how the SAP first will convert the text file into IDoc and then create Purchase order. Can any body help me how to go about it? What steps i have to follow. I will have text file from that i have to create Purchase order through EDI.
    Thanks in advance.
    Regards,
    Manish

    Hi,
    Create Purchase Order through EDI
    Regarding on your query,
    You can use the standard ORDERS05 idoc type itself to send outbound idocs.
    It will be the middleware or the integration team that will send this IDOC to the receiving system.
    or
    Maintain Partner Profile in WE20, RFC Connection to the Middleware in SM59 and Port in WE21.
    Maintain Output Procedure/Output Type/Access Sequences/Condition Records from NACE
    Generate the Outbound 850 (PO) from ME21N
    Regards,
    Sekhar

  • Creating purchase order through coding

    I am trying to create purchase order through Code, for a table field i can insert as :
    odocs = GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
    odocs.CardCode = "200173"
    But if the field is not a table field then , how can i insert it in PO?????

    Hi Ashish Patil 
    Not sure what you mean, not sure what table you are talking about. But here is some sample code on how to add a purchase order.
    Dim PO As SAPbobsCOM.Documents
            PO = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
            PO.CardCode = "VUL001"
            PO.Lines.ItemCode = "02SILVTS"
            PO.Lines.Quantity = 1
            PO.Lines.Price = 120
            If PO.Add() <> 0 Then
                Dim str As String
                str = oCompany.GetLastErrorDescription()
                MsgBox(str)
            End If
    hope it helps

  • Problem in creating Purchase order through Idoc

    Hi ABAPers,
    I am trying to post PO document through WE19 t-code using inbound function module BAPI_IDOC_INPUT1 which is calling BAPI_PO_CREATE1 internally.And i am getting below error messages.
    1. Characteristic  does not exist in operating concern AC01
    2. This function only possible for subcontracting items
    3. No instance of object type PurchaseOrder has been created. External reference
    passing data to IDOC:PORDCR102
    Header Segment : E1BPMEPOHEADER and E1BPMEPOHEADERX
    company code    0814
    doc_type            NB
    vendor                0000400001
    poprg-                EPRO
    pgroup               U01
    Item Segment : E1BPMEPOITEM and E1BPMEPOITEMX
    Item                  00010
    material             000000000000000263
    plant                 0374
    Qty                   22.000
    Delivery Segment E1BPMEPOSCHEDULE and E1BPMEPOSCHEDULEX
    Item                  00010
    Schedule line     0001
    delivery date      01.12.2008
    Qty                   22.000
    Note: i am able to create PO successfully, through SE37 by using FM BAPI_PO_CREATE1  with given above data.
    Please confirm me, what else i need to pass to post PO through WE19 t-code using inbound function module BAPI_IDOC_INPUT1.
    Please reply me ASAP.
    Thanks and Regards,
    Sekhar Raju.

    must be data format issue. when you use Function_module/BAPI from SAP GUI, convertion exit is applied automatically. hence data is converted to proper format & submited.

  • During  creating Purchase  order

    Hi alll ,
    My Problem is while creating purchase order through purchase requisition
    How to remove the tick mark against invoice reciept i.e (repos) and gr based i.e ( weber )
    programatically .
    Regards
    Deepak

    hi,
    if you are working in ECC version you can easily resolve your porblem by implementing implecit enhancement.
    the above specifed user exit is not called exactely.
    implement two implecit enhancement in the following include program for resolving your problem
    1.Go to inlcude program LMEGUICI5. in that we have one method implementaion. Here implement implecit enhancement at the beginning of the method like below.
    METHOD transport_to_dynp.
    ENHANCEMENT 50  ZREMOVE_FLAG.    "active version
    clear: mepo1317_pbo-repos,
          mepo1317_pbo-webre,
          mepo1317_pbo-erekz.
    ENDENHANCEMENT.
        mepo1317 = mepo1317_pbo.
      ENDMETHOD. 
    2. Go to include program: MM06EFPO_POT_ETDRK and implement another implecit enhancement at the beginning of the following subroutine.
    FORM pot_etdrk.
    ENHANCEMENT 100  ZREMOVE_POT.    "active version
    loop at pot.
          CLEAR: pot-repos,
          pot-webre,
          pot-erekz.
          MODIFY pot.
    ENDLOOP.
    ENDENHANCEMENT.
    endform.
    If you need any information please let me know.
    Regards,
    Peranandam

  • Creating purchase order from code

    I am importing an excel file and then for each row,trying to create purchase order through coding by using document object. I am successful in creating Order Headers but how can i create Lines if the excel sheet is having Same order but different Item codes????

    I was trying to import excel file in purchase order by following way:-
    I read each row and for each row, call function for creating order. This is my sample code---
    (var30 is previous excel value of order no. & var1 is current value)
    public sub createorder()
    odocs = GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
                If irow = 2 Then
                    odocs.CardCode = "200173"
                    odocs.Lines.ItemCode = var16
                    odocs.Lines.Add()
                Else
                    If var1 = var30 Then
                        odocs.CardCode = "200173"
                        odocs.Lines.ItemCode = "3231015"
                        odocs.Lines.Add()
                    Else
                        lRetCode = odocs.Add()
                        odocs.CardCode = "200173"
                        odocs.Lines.ItemCode = var16
                        odocs.Lines.Add()
                    End If
                End If
                lRetCode = odocs.Add()
                Dim x As String
                GOD_Company.GetNewObjectCode(x)
                If lRetCode <> 0 Then
                    GOD_Company.GetLastError(lErrCode, sErrMsg)
                    MsgBox(sErrMsg)
                Else
                    MsgBox("Order Created with no " & x & ".")
                End If
                var30 = var1
    This code is giving error as "Item No. is missing(OPOR.ObjType)", But Item no. is not present in Purchase Order. Please check whether Code is proper or i need to make any changes???????/

  • Workflow issue when create Purchase Order automaticlly based on Sales Order

    dear experts,
    I got a problem when create purchase order automatically once the Sales Order created, the field ERNAE of the Purchase Order creatd is WF-BATCH, but we want this field to be the user log in the system, like John. Smith
    it seems this is a configuration issue, but i am not familar with workflow, do you experts have any solutions?
    thank you in advance.
    Hongtao

    thank you for you reply my friend.
    yes, i mean the PO creator.
    I just create a SO in VA01, then change the Schedule line category from CN to CP, then SAVE, then Confirm the Delivery Proposal. after all this, the PO will be created automatically by Workflow. Because when I display the PO via ME23N, it displays [Standard PO XXXXX  created by Workflow-System] on the top of the screen.
    But i do not know which workflow is trigered to create the PO. and i tried SWEL like you said, there is no record listed.
    do you have any other suggestions? thank you so much, friend.

  • How to create purchase order and sales orders

    Hi guys,
    i want to create sales order in IDES and i need to create purchase order ECC.
    depending on that i want to create the idoc for that and i want to send info through xi to the other sys.
    will u plz any of u can help me in this query.
    Thanks & Regard,
    Kalyani..

    Hi,
      TCODE for purchase order-  me22n
      TCODE for sales order- va01
    Regards,
    S.RamNarender

  • Create purchase order automatically from Sales order.

    Hi,
    I have ticked  Create purchase order automatically check box in item category TAS and TAB but still not able to generate Purchase Order automatically.???
    any clue.
    thanks/ashu

    You need to have your prerequisites in place for the automated creation of the purchase requisition before the purchase order can be raised:
    You may already have done this, but check that your material has the purchasing information on it (trxn MM02, purchasing tab), that a purchasing information record exists for that material and vendor in that purchasing org (trxn ME12), check that a source list exists as well (trxn ME02). If you have created the source list or purchasing info record after the sales order has been created then you will need to go into trxn ME56 to assign them manually. That should release the PO to be created.
    In standard 3rd party, the PO is created using ME59 (prog RM06BB20), which can be run as a batch job.
    Jon

  • Created purchase order based in drafts

    I need help, I want to create purchase order based in drafts.
    Has somebody any sample in SDK??
    Thanks.

    Hi Santiago,
    Please see your Help Filesprovided with the SDK:
    DI-API > Reference > Overview > Objects > Documents. Below on that page you'll find a nice link to the sample below. Replace the <i>vDrafts.DocObjectCode = oInvoices</i> with order and you're set.
    Hope it helps,
    Rowdy
    <b>Code (VB from the Help File)</b>
    Sub AddInvoice_Click()
        Dim RetVal As Long
        Dim ErrCode As Long
        Dim ErrMsg As String
        'Create the Documents object
        Dim vDrafts As SAPbobsCOM.Documents
        Set vDrafts = vCmp.GetBusinessObject(oDrafts)
        'Set values to the fields
        vDrafts.DocObjectCode = oInvoices
        vDrafts.CardCode = "BP234"
        vDrafts.HandWritten = tNO
        vDrafts.DocDate = "21/8/2003"
        vDrafts.DocTotal = 264.6
        'Invoice Lines - Set values to the first line
        vDrafts.Lines.ItemCode = "A00023"
        vDrafts.Lines.ItemDescription = "Banana"
        vDrafts.Lines.Quantity = 50
        'Invoice Lines - Set values to the second line
        vDrafts.Lines.Add
        vDrafts.Lines.ItemCode = " A00033"
        vDrafts.Lines.ItemDescription = "Orange"
        vDrafts.Lines.Quantity = 1
        'Add the Invoice
        RetVal = vDrafts.Add
       'Check the result
        If RetVal <> 0 Then
            vCmp.GetLastError ErrCode, ErrMsg
            MsgBox ErrCode & " " & ErrMsg
        End If
    End Sub

  • User based authorization to create Purchase Orders out of Purchase Req.?

    Hello,
    I have the following requiment for my client:
    User based authorization to create Purchase Orders out of Purchase Req.?
    I am told the same can be achieved using same standard menu path in IMG/Customizing.
    Please advise with the menu path and detials, Usefull answers will be rewarded.
    Thanks

    Using OMET Function Authorization, you can restrict users to create Purchase orders without Purchase Reqn.
    Using OMET trxn code Create one Function Authorixation Called pr and in General Parameters tab Select the Field Selection and in Possible reference Objects Tab Mark the With ref to Prs check box and save.
    Next, you've got to associate via SU01 
    Click Parameters, insert a new parameter id EFB to the authorization code. 
    Type in Parameters value you want e.g. XX 
    You have to assign the control for ALL the SAP buyers via thier SAP users id.
    Logoff and login again. Then try to create a Purchase Order without a reference.
    From Next time whenever you try to create with out referring PR it will not allow you to Save PO.
    Regards,
    Ashok

  • Automaticf creation of purchase order through pr

    Dear Consultants,
    system is not creating automatic  purchase order. in me59n i am getting the following error
    Requisition could not be converted
    i have done the following setting for automatic creation of purchase order
    1. in materil master record i have checked auto po.
    2. in vendor master record i have checked automatic purchase order
    3. i have created purchase info record with the combination of material vendor purchase organization.
    4. in source list i have fixed the vendor in me01
    5. in source determination under define regular vendor i have checked the box against the required plant.
    kindly let me know what all other configurations are required for creating automatic purchase order through purchase requisition
    Regards/ Siri

    Hi
    Is this purchase requisition created during MRP run??
    If yes then have you marked the sourcelist record for this vendor as MRP relevant??
    If the purchase requisition is generated manually then whether the source of supply was assigned in the PR??
    In ME59N, the PR would be converted to PO if the PR has the assigned source of supply.
    Regards
    Prasad

  • Issue while creating Purchase order (ME21N)

    Hi Friends,
    Hope U Have a Good Day...
    My issue is while creating purchase order , I enter vendor and in org.data tab I enter Pur.Org,company code and purchase group. After entering these values if I check in communication tab, the sales person and telephone fields are filled with corresponding data.
    Now my requirement is after entering Pur.Org, Company code and purchase group, and if I go and check in Communication tab, these two fields ( sales person, telephone ) should be blank.
    Please help me in this issue...
    Thanks & Regards
      Ganesh Reddy

    Hi Ganesh,
    This is being fetched frm the vendor master and if u wan this field to be blank
    Then u hav to remove those data frm the vendor master .
    Put tat vendor, comp code n purchase org
    Then select pur org data alon - >chk in purch data
    u can find tat sales person n telp no being appeared in the PO
    lemme know if u hav any prob in getting tat .

  • Email Created Purchase Order to approver

    Dear All,
    Good Day!
    is it possible to be automatic send email to approver the created purchase order
    How can i config/setup  purchase order to be email to different  approver
    this is the first time we will do the created purchase order to be send automatic through email to approvers
    Thanks in advance
    Ermin D. Concepcion

    Hi,
    Same question you are asking again & again!
    Re: Send PO to vendor through e-mail
    OK.
    In Standard PO to send by E-mail to vendor is possible only after PO final release,if you set Dispatch time as 4 {Send immediately (when saving the application)} in NACE t.code in application EF & in condition record t.code:MN04 for PO message type.
    Purchase order to be email to different approve for approving , then go for Workflow.
    http://wiki.sdn.sap.com/wiki/display/ABAP/SendanExternalmailthroughSAPBusinessWorkflowandRecieversaddressin+CC
    Regards,
    Biju K

  • How to create purchase order using SharePoint Custom List

    Hi All,
    Can you please provide some example or link to create Purchase Order using SharePoint List / SharePoint Designer.
    Thanks

    Hi,
    It would be difficult to achieve what you want with the OOTB features of only one list.
    Per my understanding, there would be two main functionalities in the solution you want:
    1. Calculate and display the “Balance Qty” dynamically based on the values of “Order Qty” and “Deliver Qty”;
    2. Trace the “Deliver Date” and “Deliver Qty” as per “Purchase No”;
    As a workaround, I would suggest you create two lists as below:
    1. List “Orders”: Saving the upcoming orders per “Purchase No”, one “Order Qty” related to one unique “Purchase No”.
    Columns in this list:
    Purchase No(Number);
    Order Date(Date);
    Order Qty(Number);
    2. List “Deliveries”: Recording each delivery, one “Deliver Qty” to one unique existing “Purchase No” in list “Orders”.
    Columns in this list:
    Purchase No(Lookup “Purchase No” in list “Orders”);
    Order Date(Additional Lookup column along with “Purchase No”);
    Order Qty(Additional Lookup column along with “Purchase No”);
    Deliver Date(Date);
    Deliver Qty(Number);
    Balance Qty(Number);
    More information about
    Lookup column in SharePoint List:
    http://msdn.microsoft.com/en-us/library/office/ff728095(v=office.14).aspx
    http://zimmergren.net/technical/sp-2010-how-to-relational-lists-in-sharepoint-2010
    In the “Deliveries” list, we can trace each “Deliver Qty” and “Deliver Date” easily by filtering the “Purchase No” column in the list view page.
    For the dynamic values in “Balance Qty” column, Event Receiver with custom code would be needed as we will need to query the “Order Qty” in “Orders” list and all the
    existing “Deliver Qty” value per “Purchase No” in “Deliveries” list.
    An idea about
    how to implement a Purchase Order system in this blog would be helpful:
    http://ethan-deng.blogspot.jp/2013/03/purchase-order-management-system.html
    Best regards,
    Patrick
    Patrick Liang
    TechNet Community Support

Maybe you are looking for