Create a purchase order using an existing PO
I want to create a purchase order (ME21N) using an existing PO.
Please help. how can i do that.
Best regards,
Satish
Hi,
In the item overview of the purchase order creation screen (ME21N), you have a column Purchasing Doc and next it item no. You can give the existing purchase order number here with item no which will create a purchase order, and changes can be made wherever you require.
Hope this helps.
Thanks
Krishna.
Similar Messages
-
Create a Purchase order using the BAPI using the data in the XML file.
Hello Gurus,
here is the scenario can anyone help me how to proceed explaining the procedure?
Create a Purchase order using the BAPI using the data in the XML file.
comprehensive explanations are appreciated.
thanks in advance.hi,
first use fm "bapi_po_create".
then use fm "BAPI_ACC_GL_POSTING_POST"
The demo environment was made with real business scenario in mind, but following subjects need to be addressed in a live implementation:
No exceptions and error handling is implemented, except the order rejection (e.g. partly delivery);
In Navision both XML Ports and the XML DOM has been used to integrate with SAP XI, because XML ports has some drawbacks regarding to Namespaces in XML Documents (mandatory in SAP XI);
A minimum of SAP and Navision customization is required to implement this solution. (e.g. user exit in SAP, Navision XML DOM). -
Creating a Purchase Order using ORDERS05 Idoc
Hi Experts,
I need to create a purchase order using ORDERS05 Idoc, with the data I am using a sales order is gettig created but I need to create a PO insted of SO.
Please let me know what is difference between a PO and SO while using ORDERS05. Also please let me know what are all the fields that needs to chaged in the Idoc.
Thanks,
SumaHi,
I'm looking at a similar problem, can we use ORDERS05 IDOC basic type to create a Purchase Order?
What is the inbound processing FM? I tried IDOC_INPUT_ORDRSP, but it seem to only allow changes to a PO, and not creation of a PO.
For IDOC_INPUT_ORDERS FM this one seem to only create Sales Orders?
Which inbound FM should i be using?
Regards. -
How to create multiple Purchase Order using the same document number?
HI Friends,
I m in a product which extracts data from SAP and stored in Access database.
For that,while i extracting Purchase Order from the Demo Database (SBODemo_US)for OEC Computers,the same DocNum is used for several Purchase Order using Index Line numbers.
eg:
DocNum for Purchase Order1 -->3000 0 (Index)
DocNum for Purchase Order2 -->3000 1 (Index)
But i can't create multiple Purchase Order using same DocNum manually in SAP B1,Could anybody please help me <b>to create a Purchase Order using same DocumentNumber?</b>
Thanks in Advance
SooriyaKala.PHi,
The problem statement is not quite clear to me.
As far as I understand your statement, I think you want to club multiple orders into one purchase order using the index incrementally.
For this I think once you have created the first purchase order, open the purchase order in edit mode the second time and append the new line items.
If I am getting you wrong please explain the problem statement in more detail.
Regards,
Rara. -
Create a purchase order using transaction ME21
Hello Abappers,
I want to create a STO( purchase order using the sales order data) using transcation ME21.
Kindly provide step wise details as i am a technical person adn dont have to functional knowledge to create it.Also mention where the pricing conditions, the delivery address of the receiving plant. etc will have to be mentioned.
Thanks a lot in advance.
Appropriate points wil be rewarded to.check this link::
http://web.mit.edu/sapr3/windocs/bpors03m.htm
from Purchase Requisition
http://web.mit.edu/sapr3/windocs/bpors03n.htm -
How to create a Purchase order from XI Using ORDERS05
Hello Experts,
I need to create a purchase order using OREDRS05 from XI. I was not able to create and I am having these quires.
1. What are all the mandatory fields that I need to fill in to create a purchase order?
2. Which part of the SAP will take care of the control record? Is this done by SAP or Integration Tool?
3. When I have tryed with an existing Inbound Idoc(On R/3 Side) its showing Satus 51 what should I do?(Error: There is no article description for item 000010)
If Possible give me the step by step procedure to reslove..
Thanks in Advance,
Sai SumaHi Suma,
Check this link
Creating Purchase Order IDOC through XI
/people/ravikumar.allampallam/blog/2005/03/03/creating-purchase-order-idoc-through-xi
Sachin -
Problem in creating Purchase order Using BAPI
Dear ABAPers,
I am creating the Purchase order Using BAPI_PO_CREATE1. In that the Purchase order Line item i am giving the Net Price for the Material.But While creating the purchase order the system creates the puchase order with the net price which is already available in the memory.So how to solve this problem.
Thanks & Regards,
Ashok.Hi,
Try to pass the value NO_PRICE_FROM_PO in the BAPI and see
NO_PRICE_FROM_PO = 'X'
Regards
Bala Krishna -
Create Purchase Order using B1ws SAP 8.81
Hi Experts I am creating a Purchase Order using the Web Services SAP 8.81 PL7 SQL 2008, the problem is when i create the PO in business one it comes without the deatails on the lines like Price and Line total what am i doing wrong this is the code for the lines
Dim docLine As PurchaseOrdersService.DocumentDocumentLine = New PurchaseOrdersService.DocumentDocumentLine With
.ItemCode = gvItems.Rows(i).Cells(1).Value, .ItemDescription = gvItems.Rows(i).Cells(2).Value, .Quantity = gvItems.Rows(i).Cells(5).Value, .UnitPrice = Double.Parse(gvItems.Rows(i).Cells(6).Value) _
, .Price = Double.Parse(gvItems.Rows(i).Cells(6).Value), .LineTotal =
Double.Parse(gvItems.Rows(i).Cells(9).Value)} If i = 0 Then
poDoc.DocumentLines = Array.CreateInstance(docLine.GetType(), Me.gvItems.RowCount - 1)
End If
poDoc.DocumentLines.SetValue(docLine, i)
Regards BenHi Benedict,
Please review B1WS samples and documentation, it is stated there the following sentence:
Per each object property with a type different of string an associated Boolean property with the same
name but finishing with u201CSpecifiedu201D is automatically created by .NET environment. You are forced to set
this property value to u201Ctrueu201D if you want the associated property to be correctly set in the DI Server SOAP
message automatically formatted.
Hope it helps,
Trinidad. -
Need a Bapi to Create a purchase order
Hi experts,
Is there a Bapi, to create a 'Purchase Order' from an existing Purchasing document no. marked for deletion.
Thanks in advance ,
Hrashit RungtaHi Experts,
I have used BAPI_PO_CREATE1 to create a purchase order .
I have successfully created a purchase order when i use this BAPI directly through SE37 ,
supplying the required inputs.
But now i am calling this BAPI inside a program,
Supplying the same inputs as earlier.
Buit i am not able to generate a PO.
I am getting the messages in the Return Table as :|Please enter items first
No instance of object type PurchaseOrder has been created. External referen
Document contains no items
Can someone suggest What input am i missing ?
Thanks in advance,
Harshit Rungta -
Steps to create a purchase order in SAP r/3
Hi All,
I need to create a purchase order in SAP R/3,I am very new to SAP R/3 just started using material managements module in R/3.Could any one please help me to know what all steps i need to take for creating a PO.Do i require some pre-requisite data in R/3?
Waiting for your reply!
Thanking you.
Regards,
Namrata.Trigger
A purchase order needs to be created, and the vendor is known
Business Process Description Overview
A purchase order is a legal document issued by the buyer to the vendor to supply materials or service at the agreed price, terms and conditions. The Purchase Order forms the basis for all follow-on activities like Goods Receipt, Invoice Verification, etc. The Purchase Orders can be created directly by entering all the required data, copying already created purchase order, with reference to an RFQ/Contract or with reference to a PR.
Purchase Order creation is possible only if sufficient budget allocation is there for the Fund Centers. It is not possible to create Purchase Orders for a Vendor who is blocked for procurement or not maintained in source list for that item. Also it is not possible to create PO for Quantity more than the PR quantity.
All the price components which are to be paid to vendors and requires to be inventoried has to be included in PO.It is possible to add different vendors for delivery costs. The tax codes should be correctly maintained in PO for the purpose of Cenvat availment etc.
The payment term defaulted from Vendor Master or RFQ has to be verified and changed if required.
The incomplete Purchase Orders can be saved as HOLD document and later completed and saved thru Change PO menu
Input - Required Fields Field Value/Comments
Vendor Vendor number
Purchasing Organization 1000
Purchasing Group Purchasing Group code
Date Purchase order date
Account assignment category Where costs will be allocated
Delivery Date Anticipated Delivery Date
Plant For which plant we are buying the material
Output - Results Comments
Purchase order document Can be changed, displayed or printed which can then be mailed to vendor
Tips and Tricks
The Purchase Orders can be created directly by entering all data required for creating PO or by copying another PO or with reference to RFQ/Contract/PR.To create a purchase order by copying existing document (PO/RFQ/PR), you can either select the desired document in the document overview .and adopt it in the current purchase order in the right-hand area of the screen using the ADOPT button .In addition you can drag it onto the shopping basket symbol with the left-hand mouse button.
Click the Personal Settings button on the tool bar, this function is for default information for purchase order header data and also purchase order item data. This will reduce the amount of redundancy in the data entry, i.e. plant, company code.
One Purchase Order may be created for several purchase requisitions
Procedural Steps
1.1. Access transaction by:
Via Menus Logistics èMaterials ManagementèPurchasingèPurchase OrderèCreateèVendor/Supplying Plant Known.
Via Transaction Code ME21N
1.2. Double-click
On screen Create Purchase order
On screen select Domestic Purchase order in this screen . You can also select other document if you want to create other. Here drop down menu is available.
Click to enter the organization data.
Screen will change in the header; enter data as given in the table below:
Field Name R/O/C Description
Purchasing Org. R Enter the purchasing organization code.
Example: 1000
Purch. Group R Enter the purchasing Group which is procuring the material
Example: P01
Company Code R Enter the company code under which above purchasing
Organization is.
Example: 1000
After entering the organization data enter the vendor or material supplier in the field here drop down is available.click to see the drop down.
Field Name R/O/C Description
Search term O Text that describes the vendor in more detail.
Example: MICON
Vendor O Description of the vendor.
Example: 100008
Click .
System displays all possible entries available as per data entered
Restrict value range (1) 1 Entries found
To select required Vendor Click .
Click .
Vendor selected
Now go to ,here the system will pick up the data automatically from the vendor master but if you want to chane the data you can change the data. Here drop down menu is available.
Now go to to mainatin the text.
After maintaining the text if you want to see or change the vendor address click and do the amendments.
Now Go to and click to enter the Items and other data as per the table given below:
Field Name R/O/C Description
Account Assignement R Key that identifies specific settlement receiver types such as cost centers, internal orders, work orders, asset accounts, or project WBS elements.Example: K
drop down menu is available here.
Item Cateogry O How the procurement of a material is controlled.
Drop down menu is available here.Example: Standard
Material R Here you will enter the material to be purchased from the
Vendor.
Here also drop down menu is available. Use the following
to select the material. Example ZROH-DEMO
In the figure above enter the search cretira for the material for example ZROH-DEMO and click
. The follwing result will appear on the screen select the line item and click to select
the material.
Short Text R Enter here short description about the material,if the text is not
automatically picked up from the material master.
PO Quantity R Enter here quantity to be ordered.
Example 10
Order unit R Here we enter the order units of measurement.
Here also drop down menu is available.
Example : KG
Category of delivery date O Here you can enter deleviery date format.
Here also drop down menu is available.
Example : Day format
Delivery date R Enter the delivery date. You can use the calender provided by
the system.
Example : 28.02.2006
Net price R Enter the net price of the material here
Example : 1000 INR
Material group R Enter the material group to which that material belongs.Here
also drop down menu is available. This field is also automatic
picked up field.
Example : M10001
Plant R Enter the plant code for which you are purchasing the material
Here also drop down menu is available.
Example : 1100
Storage location O Here you will enter where the material is to be stored. Drop
Down menu is available here.
Example WH01
Click Enter and system will give you message
You will now see the screen
Field Name R/O/C Description
Cost Centre R The purchase is done for which purpose. Here also drop down
Menu is available.
Example: 11050 for CDU/VDU /SGU OP
G/L Account R G/L account from which payment will be done.
It will be automatically be picked up from the material group
You can change it also.
Unloading Point O Specifies the point at which the material is to be unloaded.
Recipient O Specifies the recipient for whom the material is destined.
Click to see and to change the Tax Code at item level.
Select to view the taxes applied on the line item.
click to go back to the previous screen .
On the main screen in the same tab if you want to change the taxe select the tax code from the drop down available
After selection again, Select to view the taxes applied on the line item.
If you want to add more conditions click tab and enter the conditions from the drop down
You can also maintain the text at item level by clicking tab.
After completeing this all click to check wether here is any error in the purchase order , If there will not
↓
any error then on the screen following line will appear.
If there will be some error the system will throw the message on the screen
select the line item and click to see the detail of the error.
close this window now and goto main screen to rectify the error.
After rectifying the error again click to check wether here is any error in the purchase order.
Now click to save the purchase order, after clicking the button the following message will appear -
Want to create a multiple Purchase Order using one file source
I'm want to create a multiple purchase order using one source file. I want to read the file source create LINES in a purchase order and when the Vendor code changes I want to Add the purchase order and then create a new purchase order and Add LINES and so on.
Right now I get Item.no is missing [POR1.ItemCode][Line 2]Here is a code sample
Private Sub testcode()
Dim strOrdplanFile As String
Dim oLineRec As SAPbobsCOM.Recordset
Dim strLine As String = ""
Dim ItemName As String
Dim Quantity As String
Dim RequiredDate As String
Dim SupplierType As String
Dim ShipTo As String
Dim Vendor As String
Dim oPurchaseOrder As SAPbobsCOM.Documents
Dim bAddPOrder As Boolean = True
Dim bPurchase As Boolean = False
Dim sSQL As String
Dim iReads As Integer = 1
Dim iCurrentPurchaseNumber As Integer = 0
Dim bErrors As Boolean = False
Dim retCode As Double
oPurchaseOrder = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
strOrdplanFile = strFolderLocation & "ORDPLAN.TXT"
If File.Exists(strOrdplanFile) And FileLen(strOrdplanFile) > 0 Then
Dim sr As New StreamReader(strOrdplanFile)
strLine = sr.ReadLine()
txtPurRec.String = "0"
oFormStatus.Update()
Try
Do
Vendor = strLine.Substring(0, 8).Trim()
ShipTo = strLine.Substring(12, 8).Trim()
SupplierType = strLine.Substring(26, 1)
ItemName = strLine.Substring(27, 20).Trim()
Quantity = strLine.Substring(94, 8)
RequiredDate = strLine.Substring(206, 9)
oLineRec = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
sSQL = "SELECT PrcrmntMtd, CardCode FROM OITM WHERE ItemCode = '" & ItemName & "'"
oLineRec.DoQuery(sSQL)
If oLineRec.RecordCount() > 0 Then ' if it exists add the record
If oLineRec.Fields.Item(0).Value.ToString = "B" Then
If (bAddPOrder) Then
oPurchaseOrder.CardCode = Vendor
oPurchaseOrder.DocDueDate = RequiredDate
'Add first item to the purchase order
oPurchaseOrder.Lines.ItemCode = ItemName
oPurchaseOrder.Lines.WarehouseCode = ShipTo
oPurchaseOrder.Lines.Quantity = CDbl(Quantity)
oPurchaseOrder.Lines.Add()
bAddPOrder = False
bPurchase = True
iCurrentPurchaseNumber = iCurrentPurchaseNumber + 1
txtPurRec.String = "R: " & iReads & " W: " & iCurrentPurchaseNumber.ToString
oFormStatus.Update()
Else
'compare CardCode to make sure Vendor hasn't change
If (oPurchaseOrder.CardCode.CompareTo(Vendor) = 0) Then
'Add item to the purchase order
oPurchaseOrder.Lines.ItemCode = ItemName
oPurchaseOrder.Lines.WarehouseCode = ShipTo
oPurchaseOrder.Lines.Quantity = CDbl(Quantity)
oPurchaseOrder.Lines.Add()
Else
'vender code changed
retCode = oPurchaseOrder.Add()
If (retCode <> 0) Then
SBO_Application.MessageBox(oCompany.GetLastErrorDescription(), 1, "OK", "", "")
End If
oPurchaseOrder.CardCode = Vendor
oPurchaseOrder.DocDueDate = RequiredDate
'Add first item to the purchase order
oPurchaseOrder.Lines.ItemCode = ItemName
oPurchaseOrder.Lines.WarehouseCode = ShipTo
oPurchaseOrder.Lines.Quantity = CDbl(Quantity)
oPurchaseOrder.Lines.Add()
bAddPOrder = False
bPurchase = True
iCurrentPurchaseNumber = iCurrentPurchaseNumber + 1
txtPurRec.String = "R: " & iReads & " W: " & iCurrentPurchaseNumber.ToString
oFormStatus.Update()
End If
iReads = iReads + 1
End If 'new
strLine = sr.ReadLine()
End If
End If
Loop Until sr.EndOfStream
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
If (bPurchase) Then
lRetCode = oPurchaseOrder.Add()
End If
sr.Close()
swLogFile.WriteLine("Purchase orders stored : " & iCurrentPurchaseNumber)
oPurchaseOrder = Nothing
End If
End Sub -
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.
ThanksHi,
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 -
How create a purchase order without imputation using bapi: BAPI_PO_CREATE1
Hello Forum
I have an request for purchase order with imputation K (cost center, EBAN-KNTTP). During the liberation of the request for purchase order, and using the Bapi: BAPI_PO_CREATE1, I want to create a Purchase Order without imputation (imputation empty or charge empty).
The system displays the following error: The request for purchase order, item (position) 10, is attributed to another order...
I imagine that is because the request for purchase order has imputation (charged) K and the purchase order will have no type of imputation (imputation empty).
However, manually, Yes, I can create the purchase order. That is, I first release, the request for purchase order. Then I create the order of purchase using ME21 and with reference to request for purchase order, and when SAP returns the items of the request for purchase order, I manually remove the imputation K, and these items to become the purchase order.
Please support me want to know how to resolve this case, why can not I create a purchase order without imputation to from the request for purchase order with imputation K, using Bapi
Thank you.
Greetings,Hi,
In the item overview of the purchase order creation screen (ME21N), you have a column Purchasing Doc and next it item no. You can give the existing purchase order number here with item no which will create a purchase order, and changes can be made wherever you require.
Hope this helps.
Thanks
Krishna. -
HOW TO CREATE PURCHASE ORDER USING BAPI
HI FRIENDS,
I HAVE URGENT REQUIREMNT ,TO CREATE PURCHASE ORDER USING BAPI.PLS HELP ON THIS.
UR'S
RAVIHi
See the sample code and do accordingly
REPORT zpo_bapi_purchord_tej.
DATA DECLARATIONS *
TYPE-POOLS slis.
TYPES: BEGIN OF ty_table,
v_legacy(8),
vendor TYPE bapimepoheader-vendor,
purch_org TYPE bapimepoheader-purch_org,
pur_group TYPE bapimepoheader-pur_group,
material TYPE bapimepoitem-material,
quantity(13),
delivery_date TYPE bapimeposchedule-delivery_date,
net_price(23),
plant TYPE bapimepoitem-plant,
END OF ty_table.
TYPES: BEGIN OF ty_alv,
v_legs(8),
success(10),
v_legf(8),
END OF ty_alv.
TYPES: BEGIN OF ty_alv1,
v_legf1(8),
v_msg(500),
END OF ty_alv1.
*-----Work area declarations.
DATA: x_table TYPE ty_table,
x_header TYPE bapimepoheader,
x_headerx TYPE bapimepoheaderx,
x_item TYPE bapimepoitem,
x_itemx TYPE bapimepoitemx,
x_sched TYPE bapimeposchedule,
x_schedx TYPE bapimeposchedulx,
x_commatable(255),
x_alv TYPE ty_alv,
x_alv1 TYPE ty_alv1,
x_alv2 TYPE ty_alv1.
*-----Internal table declarations.
DATA: it_table TYPE TABLE OF ty_table,
it_commatable LIKE TABLE OF x_commatable,
it_item TYPE TABLE OF bapimepoitem,
it_itemx TYPE TABLE OF bapimepoitemx,
it_sched TYPE TABLE OF bapimeposchedule,
it_schedx TYPE TABLE OF bapimeposchedulx,
it_alv TYPE TABLE OF ty_alv,
it_alv1 TYPE TABLE OF ty_alv1,
it_alv2 TYPE TABLE OF ty_alv1.
DATA: po_number TYPE bapimepoheader-po_number,
x_return TYPE bapiret2,
it_return TYPE TABLE OF bapiret2,
v_file TYPE string,
v_temp(8),
v_succsount TYPE i VALUE 0,
v_failcount TYPE i VALUE 0,
v_total TYPE i.
DATA: v_temp1(5) TYPE n VALUE 0.
DATA: x_event TYPE slis_t_event,
x_fieldcat TYPE slis_t_fieldcat_alv,
x_list_header TYPE slis_t_listheader,
x_event1 LIKE LINE OF x_event,
x_layout1 TYPE slis_layout_alv,
x_variant1 TYPE disvariant,
x_repid2 LIKE sy-repid.
DATA : it_fieldcat TYPE TABLE OF slis_t_fieldcat_alv.
SELECTION-SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK v_b1 WITH FRAME.
*-----To fetch the flat file.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK v_b1.
AT SELECTION-SCREEN *
AT SELECTION-SCREEN.
IF p_file IS INITIAL.
MESSAGE text-001 TYPE 'E'.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*-----To use F4 help to find file path.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
v_file = p_file.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM gui_upload.
LOOP AT it_table INTO x_table.
PERFORM header_details.
v_temp = x_table-v_legacy.
LOOP AT it_table INTO x_table WHERE v_legacy = v_temp.
PERFORM lineitem.
PERFORM schedule.
ENDLOOP.
DELETE it_table WHERE v_legacy = v_temp.
PERFORM bapicall.
MOVE po_number TO x_alv-success.
APPEND x_alv TO it_alv.
CLEAR x_alv.
*-----To clear the item details in internal table after the operation for a header.
REFRESH: it_item,
it_itemx,
it_sched,
it_schedx.
CLEAR: v_temp1.
ENDLOOP.
v_total = v_succsount + v_failcount.
PERFORM display_alv.
FORM GUI_UPLOAD *
FORM gui_upload .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
TABLES
data_tab = it_commatable
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc = 0.
*-----To fetch the comma seperated flat file into an internal table.
LOOP AT it_commatable INTO x_commatable.
IF x_commatable IS NOT INITIAL.
SPLIT x_commatable AT ',' INTO
x_table-v_legacy
x_table-vendor
x_table-purch_org
x_table-pur_group
x_table-material
x_table-quantity
x_table-delivery_date
x_table-net_price
x_table-plant.
APPEND x_table TO it_table.
ENDIF.
CLEAR x_table.
ENDLOOP.
ENDIF.
ENDFORM. " gui_upload
FORM HEADER_DETAILS *
FORM header_details .
MOVE 'NB' TO x_header-doc_type.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_table-vendor
IMPORTING
output = x_table-vendor
MOVE x_table-vendor TO x_header-vendor.
MOVE x_table-purch_org TO x_header-purch_org.
MOVE x_table-pur_group TO x_header-pur_group.
x_headerx-doc_type = 'X'.
x_headerx-vendor = 'X'.
x_headerx-purch_org = 'X'.
x_headerx-pur_group = 'X'.
ENDFORM. " header_details
FORM LINEITEM *
FORM lineitem .
v_temp1 = v_temp1 + 10.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_temp1
IMPORTING
output = v_temp1.
MOVE v_temp1 TO x_item-po_item.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_table-material
IMPORTING
output = x_table-material.
MOVE x_table-material TO x_item-material.
MOVE x_table-quantity TO x_item-quantity.
MOVE x_table-net_price TO x_item-net_price.
MOVE x_table-plant TO x_item-plant.
x_itemx-po_item = v_temp1.
x_itemx-material = 'X'.
x_itemx-quantity = 'X'.
x_itemx-net_price = 'X'.
x_itemx-plant = 'X'.
APPEND x_item TO it_item.
APPEND x_itemx TO it_itemx.
CLEAR: x_item, x_itemx.
ENDFORM. " lineitem1
FORM SCHEDULE *
FORM schedule .
MOVE x_table-delivery_date TO x_sched-delivery_date.
MOVE v_temp1 TO x_sched-po_item.
x_schedx-delivery_date = 'X'.
x_schedx-po_item = v_temp1.
APPEND x_sched TO it_sched.
APPEND x_schedx TO it_schedx.
CLEAR: x_sched, x_schedx.
ENDFORM. " schedule
FORM BAPICALL *
FORM bapicall .
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = x_header
poheaderx = x_headerx
IMPORTING
exppurchaseorder = po_number
TABLES
return = it_return
poitem = it_item
poitemx = it_itemx
poschedule = it_sched
poschedulex = it_schedx.
IF po_number IS NOT INITIAL.
v_succsount = v_succsount + 1.
MOVE x_table-v_legacy TO x_alv-v_legs.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
v_failcount = v_failcount + 1.
MOVE x_table-v_legacy TO x_alv-v_legf.
MOVE x_table-v_legacy TO x_alv1-v_legf1.
LOOP AT it_return INTO x_return.
IF x_alv1-v_msg IS INITIAL.
MOVE x_return-message TO x_alv1-v_msg.
ELSE.
CONCATENATE x_alv1-v_msg x_return-message INTO x_alv1-v_msg SEPARATED BY space.
ENDIF.
ENDLOOP.
APPEND x_alv1 TO it_alv1.
CLEAR x_alv1.
ENDIF.
ENDFORM. " bapicall
FORM DISPLAY_ALV *
FORM display_alv .
PERFORM x_list_header.
PERFORM build_fieldcat CHANGING x_fieldcat.
x_repid2 = sy-repid.
x_event1-name = 'TOP_OF_PAGE'.
x_event1-form = 'TOP_OF_PAGE'.
APPEND x_event1 TO x_event.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = x_repid2
is_layout = x_layout1
it_fieldcat = x_fieldcat
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_save = 'A'
is_variant = x_variant1
it_events = x_event
TABLES
t_outtab = it_alv
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " display_master_data
FORM USER_COMMAND *
FORM user_command USING ucomm LIKE sy-ucomm selfield
TYPE slis_selfield.
READ TABLE it_alv INTO x_alv INDEX selfield-tabindex.
CLEAR : x_alv2,it_alv2[].
LOOP AT it_alv1 INTO x_alv1 WHERE v_legf1 = x_alv-v_legf.
x_alv2 = x_alv1.
APPEND x_alv2 TO it_alv2 .
ENDLOOP.
DATA : it_fieldcat TYPE slis_t_fieldcat_alv.
DATA : x3_fieldcat LIKE LINE OF it_fieldcat.
CLEAR : x3_fieldcat,it_fieldcat[].
CLEAR x3_fieldcat.
x3_fieldcat-col_pos = '1'.
x3_fieldcat-fieldname = 'V_LEGF1'.
x3_fieldcat-reptext_ddic = text-111.
x3_fieldcat-ref_tabname = 'IT_ALV2'.
APPEND x3_fieldcat TO it_fieldcat.
CLEAR x3_fieldcat.
CLEAR x3_fieldcat.
x3_fieldcat-col_pos = '1'.
x3_fieldcat-fieldname = 'V_MSG'.
x3_fieldcat-reptext_ddic = text-112.
x3_fieldcat-ref_tabname = 'IT_ALV2'.
APPEND x3_fieldcat TO it_fieldcat.
CLEAR x3_fieldcat.
x_layout1-colwidth_optimize = 'X'.
x_layout1-zebra = 'X'.
IF it_alv2[] IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = x_repid2
is_layout = x_layout1
it_fieldcat = it_fieldcat
i_save = 'A'
i_callback_top_of_page = 'TOP'
is_variant = x_variant1
it_events = x_event
TABLES
t_outtab = it_alv2
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDIF.
ENDFORM.
FORM USER_COMMAND *
FORM top.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = 'Commentry'.
ENDFORM.
FORM BUILD_FIELDCAT *
FORM build_fieldcat CHANGING et_fieldcat TYPE slis_t_fieldcat_alv.
DATA: x1_fieldcat TYPE slis_fieldcat_alv.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '1'.
x1_fieldcat-fieldname = 'V_LEGS'.
x1_fieldcat-reptext_ddic = text-108.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '2'.
x1_fieldcat-fieldname = 'SUCCESS'.
x1_fieldcat-key = 'X'.
x1_fieldcat-reptext_ddic = text-109.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
x1_fieldcat-col_pos = '3'.
x1_fieldcat-fieldname = 'V_LEGF'.
x1_fieldcat-key = 'X'.
x1_fieldcat-reptext_ddic = text-110.
x1_fieldcat-ref_tabname = 'IT_ALV'.
APPEND x1_fieldcat TO et_fieldcat.
CLEAR x1_fieldcat.
ENDFORM. " build_fieldcat
FORM BUILD_LIST_HEADER *
FORM x_list_header.
DATA: x_list_header1 TYPE slis_listheader.
*-----List Header: type H
CLEAR x_list_header1 .
x_list_header1-typ = 'H'.
x_list_header1-info = text-105.
APPEND x_list_header1 TO x_list_header.
*-----List Key: type S
x_list_header1-typ = 'S'.
x_list_header1-key = text-106.
x_list_header1-info = v_total.
APPEND x_list_header1 TO x_list_header.
*-----List Key: Type S
CLEAR x_list_header1 .
x_list_header1-typ = 'S'.
x_list_header1-key = text-107.
x_list_header1-info = v_succsount.
APPEND x_list_header1 TO x_list_header.
ENDFORM. " build_list_header
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = x_list_header.
ENDFORM. " TOP_OF_PAGE
Reward points if useful
Anji -
Create an AP Invoice based on a Purchase Order using SDK
Hi,
What are the steps to create an AP Invoice based on a Purchase Order using DI API?
Which methods of which objects to use and what parameters to pass?
Thanks.Hi Rajesh,
Here is a sample to create an Invoice based on a Sales Order. The same way you can change as per your requirement:
SAPbobsCOM.Documents oInvoice = default(SAPbobsCOM.Documents);
oInvoice = (SAPbobsCOM.Documents)SBO_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
oInvoice.CardCode = "C000003";
oInvoice.DocDueDate = DateAndTime.Now;
oInvoice.Lines.BaseType = Convert.ToInt32(SAPbobsCOM.BoObjectTypes.oOrders);
oInvoice.Lines.BaseEntry = Convert.ToInt32(3616);
oInvoice.Lines.BaseLine = 1;
oInvoice.Lines.Quantity = 3;
oInvoice.Lines.Add();
oInvoice.Lines.BaseType = Convert.ToInt32(SAPbobsCOM.BoObjectTypes.oOrders);
oInvoice.Lines.BaseEntry = Convert.ToInt32(3616);
oInvoice.Lines.BaseLine = 2;
int kth = 0;
kth = oInvoice.Add();
if (kth != 0)
int irrcode;
string errmsg;
SBO_Company.GetLastError(out irrcode, out errmsg);
Program.oMainSAPDI.ShowMessage(errmsg, BoStatusBarMessageType.smt_Error);
The main thing to remember is Base Type, Based Entry and Base Line.
Hope it helps.
Thanks & Regards
Ankit Chauhan
Maybe you are looking for
-
How can I expand the gutters in a document created with a Pages brochure template?
How can I expand the gutters/ space between panels on a document created with a Pages brochure template?
-
I sought help among the available articles. I was informed that right clicking on a vacant part of the toolbar would give me the option to delete or hide it. Doesn't seem to work with this one. In fact, right clicking anywhere on this row isn't worki
-
Smartview 11.1.2 and Stand Alone Essbase
Hi, I am migrating some applications for a client and they are interested in using Smartview 11.1.2. Currently, they are using the add in with their 9.2 environment and I just migrated all their apps to essbase 11.1.2 which is pretty slick. I install
-
How to pass a value to a standard screen from program
My requirement is to pass a value from the program to a standard screen. I m using transaction CU01. i have to get the dependency name from the program and displayed in CU01 first screen, after tht i have to create a dependency. Set parameter Id is n
-
Captivate 8 theme overrides software simulation screen shots
Hello, I created a customer theme for my company. I create a new responsive project and use the theme created. when I try to add a software simulation slide(s); the theme replaces the screen shots of the simulation. The mouse movements and button