How to create Purchase order from Requisitions!
Hi there,
Please help me in this case:
I was created a outline agreements for item MN.001 (4600000014), and then created and released success for Requisition 10000180. After that I want to create PO from above Requisition (use T-code ME25 -Vendor Unknown). These steps as follow:
1. Navigator to T-Code : ME25
2. Refer to Req : 10000180
3. Assign Source to Agreement : 4600000014
4. click button Generate to create PO from REQ --> system message that "Item blocked for order processing (function not possible)"
Please help me!
thanks for your advise!
Viettq.
hi,
When you are using the outline agreement for the PR and then shd use for the PO...from where this RFQ comes in the scene??
Also PR is already asigned to the source as outline agreement...
Regards
Priyanka.P
Edited by: Priyanka Paltanwale on Nov 7, 2008 6:03 AM
Similar Messages
-
Update was terminated while creating purchase order from ME21N
Hi Experts,
We are getting this dump when try to create purchase order from ME21N;
Our system ECC 6.0 and IS-AFS (Apparel & Footwear Solution) V600 component has installed,
How can we prevent this error,
Regards
Here is the dump and sm21 log,
Runtime Errors LOAD_PROGRAM_NOT_FOUND
Exception CX_SY_PROGRAM_NOT_FOUND
Date and Time 10.10.2008 10:22:03
Short text
Program "RMCMS431 " not found.
What happened?
There are several possibilities:
Error in the ABAP Application Program
The current ABAP program "SAPLMCS4" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
or
Error in the SAP kernel.
The current ABAP "SAPLMCS4" program had to be terminated because the
ABAP processor detected an internal system error.
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_PROGRAM_NOT_FOUND', was not
caught in
procedure "TMC2F_FROUT_CALL" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
On account of a branch in the program
(CALL FUNCTION/DIALOG, external PERFORM, SUBMIT)
or a transaction call, another ABAP/4 program
is to be loaded, namely "RMCMS431 ".
However, program "RMCMS431 " does not exist in the library.
Possible reasons:
a) Wrong program name specified in an external PERFORM or
SUBMIT or, when defining a new transaction, a new
dialog module or a new function module.
b) Transport error
How to correct the error
Check the last transports to the R/3 System.
Are changes currently being made to the program "SAPLMCS4"?
Has the correct program been entered in table TSTC for Transaction "ME21N "?
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"LOAD_PROGRAM_NOT_FOUND" "CX_SY_PROGRAM_NOT_FOUND"
"SAPLMCS4" or "LMCS4F10"
"TMC2F_FROUT_CALL"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
The exception must either be prevented, caught within proedure
"TMC2F_FROUT_CALL" "(FORM)", or its possible occurrence must be declared in the
RAISING clause of the procedure.
To prevent the exception, note the following:
sm21 log ;
Transaction Canceled 00 671 ( LOAD_PROGRAM_NOT_FOUND 20081010102203saptest_TET_00 EYUCE 100
Update terminated
> Update key: F39796DD5421F1509233001E0BD601E0
> Update module: MCE_STATISTICS_UPD_V2
Run-time error "LOAD_PROGRAM_NOT_FOUND" occurredPlease follow the oss note 800335
V2 Update terminations in Purchasing transactions after upgrading or installing AFS 5.0 release.
Other terms
AFS, LIS, MIGO, ME22N, OLI3, S433, S431
Reason and Prerequisites
AFS Purchasing infostructure S431 is no longer used. S433 is the valid infostructure for the release AFS 5.0.
Solution
Please do the following.
For customers upgrading to AFS 5.0 only:
> Rebuild Infostructure S433.
- Goto transaction: OLI3 (Statistical Set up of Infostructures)
- Info structure to be compile: S433
- Specify the 'Name of run'.
- Execute.
> Please also follow the instructions given below.
For both Upgrade and Non-upgrade Customers:
> Create the report 'ZDELS431'.
- Transaction: SE38
- Give Program name as ZDELS431.
- Create (F5).
- Title : 'Program to delete S431'.
- Type : 1 (Executable Program).
- Status: T (Test Program).
> Copy the program text from the note and paste in the program.
> Save and activate the program.
> Execute the report for all clients in Update mode.
(Two check-boxes will appear: P_ALL_CL, P_UPDATE.
Please check both of them).
This report will delete all the references to infostructure S431. -
How to create purchase order using VA01 for BAPI?
how to create purchase order using VA01 for BAPI?
Hi Arun,
Please check this link
Example Program for BAPI_PO_CREATE1
Re: BAPI_PO_CREATE1
Questions in BAPI_PO_CREATE1
Problem with BAPI_PO_CREATE1
*& Report BAPI_PO_CREATE *
REPORT bapi_po_create.
Input File Declaration
TYPES: BEGIN OF ty_input_file,
column1 TYPE char50,
column2 TYPE char50,
column3 TYPE char50,
column4 TYPE char50,
column5 TYPE char50,
column6 TYPE char50,
column7 TYPE char50,
column8 TYPE char50,
column9 TYPE char50,
column10 TYPE char50,
column11 TYPE char50,
column12 TYPE char50,
column13 TYPE char50,
column14 TYPE char50,
column15 TYPE char50,
column16 TYPE char50,
column17 TYPE char50,
column18 TYPE char50,
END OF ty_input_file.
DATA: i_input_file TYPE STANDARD TABLE OF ty_input_file,
wa_input_file TYPE ty_input_file.
CONSTANTS: c_path TYPE char20 VALUE 'C:\',
c_mask TYPE char9 VALUE ',.,..',
c_mode TYPE char1 VALUE 'O',
c_filetype TYPE char10 VALUE 'ASC',
c_x TYPE char01 VALUE 'X'.
PARAMETERS : p_fname LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
Browse Presentation Server
PERFORM f4_presentation_file.
START-OF-SELECTION..
Read presentation server file
PERFORM f1003_upload_file.
IF NOT i_input_file[] IS INITIAL.
PERFORM split_data.
ENDIF.
*& Form f4_presentation_file
*& F4 Help for presentation server
FORM f4_presentation_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = c_path
mask = c_mask
mode = c_mode
title = text-001
IMPORTING
filename = p_fname
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
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. " f4_presentation_file
*& Form f1003_upload_file
*& Upload File
FORM f1003_upload_file .
DATA: lcl_filename TYPE string.
lcl_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lcl_filename
filetype = c_filetype
has_field_separator = c_x
TABLES
data_tab = i_input_file
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
ENDFORM. " f1003_upload_file
*& Form split_data
Collect data for creating Purchase Order
FORM split_data .
DATA: i_poitem TYPE STANDARD TABLE OF bapimepoitem,
i_poitemx TYPE STANDARD TABLE OF bapimepoitemx,
i_poitem_sch TYPE STANDARD TABLE OF bapimeposchedule,
i_poitem_schx TYPE STANDARD TABLE OF bapimeposchedulx,
i_acct_*** TYPE STANDARD TABLE OF bapimepoaccount,
i_acct_assx TYPE STANDARD TABLE OF bapimepoaccountx,
i_services TYPE STANDARD TABLE OF bapiesllc ,
i_srvacc TYPE STANDARD TABLE OF bapiesklc,
i_return TYPE STANDARD TABLE OF bapiret2,
wa_header TYPE bapimepoheader,
wa_headerx TYPE bapimepoheaderx,
wa_poitem TYPE bapimepoitem,
wa_poitemx TYPE bapimepoitemx,
wa_poitem_sch TYPE bapimeposchedule,
wa_poitem_schx TYPE bapimeposchedulx,
wa_acct_*** TYPE bapimepoaccount,
wa_acct_assx TYPE bapimepoaccountx,
wa_services TYPE bapiesllc,
wa_srvacc TYPE bapiesklc,
wa_return TYPE bapiret2,
ws_po TYPE bapimepoheader-po_number.
break gbpra8.
wa_services-pckg_no = 10.
wa_services-line_no = 1.
wa_services-outl_no = '0'.
wa_services-outl_ind = c_x.
wa_services-subpckg_no = 20.
APPEND wa_services TO i_services.
wa_srvacc-pckg_no = 10.
wa_srvacc-line_no = 1.
wa_srvacc-serno_line = 01.
wa_srvacc-serial_no = 01.
wa_srvacc-percentage = 100.
APPEND wa_srvacc TO i_srvacc.
LOOP AT i_input_file INTO wa_input_file.
IF wa_input_file-column2 EQ 'HD'.
wa_header-doc_type = wa_input_file-column3.
wa_header-creat_date = sy-datum.
wa_header-created_by = sy-uname.
wa_header-vendor = wa_input_file-column4.
PERFORM conversion_output USING wa_header-vendor
CHANGING wa_header-vendor.
wa_header-comp_code = 'DE03'.
wa_header-purch_org = 'DE03'.
wa_header-pur_group = 'DE1'.
wa_header-vper_start = wa_input_file-column9.
wa_header-vper_end = wa_input_file-column10.
wa_headerx-comp_code = c_x.
wa_headerx-doc_type = c_x.
wa_headerx-creat_date = c_x.
wa_headerx-created_by = c_x.
wa_headerx-vendor = c_x.
wa_headerx-purch_org = c_x.
wa_headerx-pur_group = c_x.
wa_headerx-vper_start = c_x.
wa_headerx-vper_end = c_x.
ENDIF.
IF wa_input_file-column2 EQ 'IT'.
wa_poitem-po_item = wa_input_file-column3.
wa_poitem-short_text = wa_input_file-column6.
wa_poitem-plant = wa_input_file-column8.
wa_poitem-quantity = '1'.
wa_poitem-tax_code = 'V0'.
wa_poitem-item_cat = 'D'.
wa_poitem-acctasscat = 'K'.
wa_poitem-matl_group = wa_input_file-column7.
wa_poitem-pckg_no = '10'.
APPEND wa_poitem TO i_poitem .
wa_poitemx-po_item = wa_input_file-column3.
wa_poitemx-po_itemx = c_x.
wa_poitemx-short_text = c_x.
wa_poitemx-plant = c_x.
wa_poitemx-quantity = c_x.
wa_poitemx-tax_code = c_x.
wa_poitemx-item_cat = c_x.
wa_poitemx-acctasscat = c_x.
wa_poitemx-matl_group = c_x.
wa_poitemx-pckg_no = c_x.
APPEND wa_poitemx TO i_poitemx.
wa_poitem_sch-po_item = wa_input_file-column3.
wa_poitem_sch-delivery_date = sy-datum.
APPEND wa_poitem_sch TO i_poitem_sch.
wa_poitem_schx-po_item = wa_input_file-column3.
wa_poitem_schx-po_itemx = c_x.
wa_poitem_schx-delivery_date = c_x.
APPEND wa_poitem_schx TO i_poitem_schx.
wa_acct_***-po_item = 10.
wa_acct_***-serial_no = 01.
wa_acct_***-gl_account = '0006360100'.
wa_acct_***-co_area = '1000'.
wa_acct_***-costcenter = 'KC010000'.
APPEND wa_acct_*** TO i_acct_***.
wa_acct_***-po_item = 10.
wa_acct_***-serial_no = 02.
wa_acct_***-gl_account = '0006360100'.
wa_acct_***-co_area = '1000'.
wa_acct_***-costcenter = 'KC010000'.
APPEND wa_acct_*** TO i_acct_***.
wa_acct_assx-po_item = 10.
wa_acct_assx-serial_no = 01.
wa_acct_assx-po_itemx = c_x.
wa_acct_assx-serial_nox = c_x.
wa_acct_assx-gl_account = c_x.
wa_acct_assx-co_area = c_x.
wa_acct_assx-costcenter = c_x.
APPEND wa_acct_assx TO i_acct_assx.
wa_acct_assx-po_item = 10.
wa_acct_assx-serial_no = 02.
wa_acct_assx-po_itemx = c_x.
wa_acct_assx-serial_nox = c_x.
wa_acct_assx-gl_account = c_x.
wa_acct_assx-co_area = c_x.
wa_acct_assx-costcenter = c_x.
APPEND wa_acct_assx TO i_acct_assx.
wa_services-pckg_no = 20.
wa_services-line_no = 2.
wa_services-service = wa_input_file-column9.
wa_services-quantity = '100'.
wa_services-gr_price = '100'.
wa_services-userf1_txt = wa_input_file-column13.
APPEND wa_services TO i_services.
wa_srvacc-pckg_no = 20.
wa_srvacc-line_no = 1.
wa_srvacc-serno_line = 02.
wa_srvacc-serial_no = 02.
wa_srvacc-percentage = 100.
APPEND wa_srvacc TO i_srvacc.
ENDIF.
ENDLOOP.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = wa_header
poheaderx = wa_headerx
POADDRVENDOR =
TESTRUN =
MEMORY_UNCOMPLETE =
MEMORY_COMPLETE =
POEXPIMPHEADER =
POEXPIMPHEADERX =
VERSIONS =
NO_MESSAGING =
NO_MESSAGE_REQ =
NO_AUTHORITY =
NO_PRICE_FROM_PO =
IMPORTING
exppurchaseorder = ws_po
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
return = i_return
poitem = i_poitem
poitemx = i_poitemx
POADDRDELIVERY =
poschedule = i_poitem_sch
poschedulex = i_poitem_schx
poaccount = i_acct_***
POACCOUNTPROFITSEGMENT =
poaccountx = i_acct_assx
POCONDHEADER =
POCONDHEADERX =
POCOND =
POCONDX =
POLIMITS =
POCONTRACTLIMITS =
poservices = i_services
posrvaccessvalues = i_srvacc
POSERVICESTEXT =
EXTENSIONIN =
EXTENSIONOUT =
POEXPIMPITEM =
POEXPIMPITEMX =
POTEXTHEADER =
POTEXTITEM =
ALLVERSIONS =
POPARTNER =
break gbpra8.
LOOP AT i_return INTO wa_return.
ENDLOOP.
ENDFORM. " split_data
*& Form conversion_output
Conversion exit input
FORM conversion_output USING p_ip
CHANGING p_op.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_ip
IMPORTING
output = p_op.
ENDFORM. " conversion_output
Best regards,
raam -
Create Purchasing Order from Purchasing Requisition
Hi,
I need to create in a report a Purchasing Order from Purchasing Requisition. I have seen the Bapi BAPI_PO_CREATE; Can I create order from requisition without fill all field and only
the requisition and ther obligatory field?
Thanks
FrancescoHi
Try out what all parameters are obligatory in case of Purchase Requsition using the FM - 'BAPI_REQUISITION_CREATE' in R/3 back-end..
and then try creating PO using 'BAPI_PO_CREATE1' or 'BAPI_PO_CREATE' Function modules.
Also try creating P Req manually using ME51N / ME51 Transactions and debug the process to get further details, if any.
Regards
- Atul -
Create purchase order from shipment cost document
Hi Experts,
I would like to know how a purchase order type is linked to a shipment cost document so as to create purchase orders automatically when I do transfer posting to the vendor from the shipment cost document. How system automatically finds out the PO type and creates purchase order.
Thanks,
EmayaHi,
Thanks. I have made all those mentioned changes already, and infact I am able to create purchase orders(PO Type NB) automatically when I do transfer posting, but I would like to know, why NB type only? why not some other purchase order types? Suppose if I create a new PO type by copying NB with new number ranges, how to link it to my shipment cost document?
Please comment.
Regards,Emaya
Edited by: Emayavaramban S on Dec 11, 2008 3:06 PM
Edited by: Emayavaramban S on Dec 11, 2008 5:12 PM -
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 -
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???????/ -
How to create Purchase order for non valuated material with fright charges
Dear Guru,
When i have creating purchase order for non valuated material then GR non valuated tab should be in display mode.And how to load fright charges.
Regards,
Abhijithi,
while creating the PO, u have the option FREE indicator in the right corner of the line item.(u can have separate Valuation type for the same, for valuation purpose)
even u can create the UNBW material type.
check the material type customization in oms2
hope will get the clarity -
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 -
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 -
How to create Transfer order from material document uFF08Move type is 101uFF09
Hi all,
is there any function module, BAPI to create transfer order from a material document number?
I want to use FM L_TO_CREATE_SINGLE,but the result is "Movement type 101 for manual transfer orders does not exist".
Is the parameters error?
Thank you in advance
RegardsThe error message you get is number 196 from message class L3, do a where-used on it from transaction SE91 and then put a break-point on each line result. Afterwards, re-execute your function call and see which break-point is hit and investigate from there.
With that said, you really should be using Bapi BAPI_GOODSMVT_CREATE for all goods movement operations. It shares code with MIGO and executes the same Badi's and user-exits, so data integrity is not broken. Don't forget Bapi BAPI_TRANSACTION_COMMIT to commit changes in the database after a successful call.
cheers -
How to create Transfer order from material document
Hi gurus,
is there any function module, BAPI to create transfer order from a material document number.
waiting for positive reply.
thanks
vinodHi,
The FM L_TO_CREATE_SINGLE or L_TO_CREATE_MULTIPLE could solve your problem.
Hope it helps.
Chang -
How to Create Purchase Order with Co Product greater than Consumption
Hi All,
I'm new to SAP. Can any one please help with the steps to create PO with Co Product greater than Consumption.
Thanks in Advance.Hi Srinivasu,
If you are talking about handling by-products during subcontracting follow the following steps.
Create Purchase order with item category "L". In the components tab maintain by-product in negative quantity. If you are not sure about the actual quantity, enter theoretical quantity ( Actual quantity can be adjusted in Subsequent adjustment in Goods receipt).
Hope this helps you.
If this has not helped you, please elaborate your requirement.
Thanks
Vasuki B S -
How to create Purchase Order using sub-ordinate Purchase order number?
Hi,
I m in ETL product have to extract SAP datas into Access.
I noticed that in the Demo DataBase of OEC Computers,the Purchase Order is created with sub-ordinate purchase order number.But i am trying to create the same in SAP B1 manually,but i can't create child Purchase Order .
<b>How to create child Purchase Order?</b>
Please help me to create the same
regards
Sooriyakala.PHi,
I m in ETL product have to extract SAP datas into Access.
I noticed that in the Demo DataBase of OEC Computers,the Purchase Order is created with sub-ordinate purchase order number.But i am trying to create the same in SAP B1 manually,but i can't create child Purchase Order .
<b>How to create child Purchase Order?</b>
Please help me to create the same
regards
Sooriyakala.P -
How to create purchase order in CRM
Hi All,
Anybody please tell me how to create PO in CRM?
Regards,
AnuragHi Anurag,
In CRM, there are Lead, Opportunity, Inquiry, Quotation and Order.
While PO is the legal document to confirm to the supplier to buy
/purchase the goods, it should be recorded under Order document
in SAP. But some cases where PO document need to be recorded
separately, I would suggest you can use Quotation state in the
document.
Remember that for Quotation and Order have same structures.
We can configured Quotation and Order in one transaction type.
Or we can configure it into different transaction type and different
number ranges.
Some cases our client need to keep "original PO" in the system.
In this case it is more make sense to provide two transaction
types (one for Quotation -> PO, and another one for Order).
So that client can save original PO at quotation document and
use it to create follow up Order document.
Hope this could helps.
Gun.
Maybe you are looking for
-
How do I move an app (like tasks) from the app list to my today screen?
I have an 8330 Curve and I love the way the active theme works for me me. I can see my msgs and calendar at a glance. Also on this screen are call log and applications. I would like to replace applications with tasks. Is this possible and how do I do
-
How can i use my old iMac as a extended desktop display for my new iMac?
I recently purchased a 21.5 in iMac and wanted to use my old iMac as a extended desktop. My new iMac has thunderbolt and USB 3.0 connections while my old iMac has firewire (400 and 800), USB 2.0 and mini-DVI. Is this posible?
-
WMP54GS and using encryption with 2 desktops, 1 XP laptop and 1 Macbook question.
Hi all. Been using this router for a while now without encryption turned on (live in the woods) and want to enable it now. When I enable encryption through the router's page (192.168.1.1), will I be given a key and then just enter that key when asked
-
I need to reset my account securety question. Please help me
I forget anser for securety question, please help me to reset.
-
Hi, I gave a try to Aperture3, and imported a few pictures tagged in Bridge and/or ExMedia. My keywords are fine in both apps. But in A3, some fields are missing (the 'place' location field in IPTC field is empty in A3, for instance), and some keywor