Material / Service order report
Hi all
Material / service order WBS wise report with net PO valve please suggest me t-code.
Hi,
Try with following t.codes or else go for development.
1.ME81N
2.ME80FN
3.MB5S
Regards,
Biju K
Similar Messages
-
DBM Sales Service Order report
KIndly provide the T: code for generating a DBM Sales/ Service order report which contains the following
Datas
Purchase requisition & Date
Purchase order & Date
Goods Receipt & Date
Goods Reject & Date
Goods cancel/Delete & Date
Goods Issue & Date
Thanks & RegardsHi,
for reporting you can use BI since DBM700.
Best regards
Robert -
Un invoice service orders ( Report )
Hi all,
Please let me know if there is a standard report for uninvoice service orders/ ?? which table in R/3 holds that information.
Thank youHi,
Thank you for your reply. Which table i can see the info for the Uninvoice service order, service entries.. I need this information in BI and i am trying to find the source so i can generate my data source.
Thank you -
Query on Service Order Reports
Hi,
Need to take report based on Months for the
Open Service Orders Quantity
Actual Cost Value of Open Service Orders (Local Currency)
Actual Billable Cost Value of Open Service Orders (Local Currency)
Month to Date Revenue
Month to Date Margin
Quantity of Invoices Processed Daily
Average Days to Invoice of Daily Invoiced Service Orders.
The above reports must be with the Output containing the below fields:
Order ID
Invoice ID
Node
Order Creation Time
Resolved Date
Invoiced At
Request Type
Deb/Cred
Quoted
Actual Cost
Total Cost Received
Total Price
Margin
Days to Invoice
Let me know if there is any std reports available or the appropriate Table names to fetch the same.
Ravi.Hi,
Am able to fetch few of the fields from AUFK Table and T. Code IW73. But still wants to know any other provides these fields to take as report.
Ravi. -
Service order reporting - Actual revenues (as per final invoice)
Hello -
Every month i wish to create a report from SAP for all closed service orders with their actual costs, and total revenue.. I know I can get this on IW73 however with most of my billable service orders, I add miscellaneous parts and prices into the debit memo and this does not show in the total revenues.
I would like to know how (if possible) I can get a list of service orders with their actual costs and actual revenue (the total of the invoice).
For now i have just been going into each individual order, and looking at the invoice for a total price but with many orders this takes quite some time.
Here is an example- one order I have says total actual costs $783.72 and total revenue of $1,897.51, however the final invoice was for $4,542.51 because I used miscellaneous part number for other charges. Therefore, total revenues is $4,542.51 minus total actual costs = $3,758.79
I hope someone can help with this.
Thanks in advance
TamaraHi,
I found out that the problem is not in the PO. The problem is in MIRO transaction. The default value at position level for the field "final invoice indicator" is in relase 4.6C set. The value is transferred to the PO when posting the invoice in MIRO.
However many thanks for your help.
Br
Manuel -
Hi Guys,
I have an ABAP interview tommorow and what the client is looking for is someone who can work on Service order proceesing, it will be great if anyone of you can help you out in this. I mean if any one of you can send some details on Service oreder processing related to ABAP.
Thanks,
Rajeev!!!!!Create sales order with reference to service order
REPORT ZBAPI_SALESORDER_CREATE LINE-SIZE 132 MESSAGE-ID ZMMBAPI .
Internal table definition *
****<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>>>
DATA: GT_ORDER_HEADER_IN LIKE BAPISDHD1,
*******<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>
GT_ORDER_HEADER_INX LIKE BAPISDHD1X,
*****<<<<<Return Parameter>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE, " Return Messages
*********<<<Communication Fields: Sales and Distribution Document Item<>>>>>
GT_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE, " Item Data
*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>
GT_ORDER_ITEMS_INX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE, "Item Data Checkbox
*********<<<Communication Fields: Sales and Distribution Document Item>>>>>>>
GT_SALESDOCUMENT LIKE BAPIVBELN-VBELN , "Number of Generated Document
*********<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>
GT_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE, "Document Partner
********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>
GT_ORDER_SCHEDULES_IN LIKE BAPISCHDL OCCURS 0 WITH HEADER LINE, "Schedule Line Data
****<<<<<<<<Checkbox List for Maintaining Sales Document Schedule Line>>>>>>>>
GT_ORDER_SCHEDULES_INX LIKE BAPISCHDLX OCCURS 0 WITH HEADER LINE, " Checkbox Schedule Line Data
*******Communication Fields for Maintaining Conditions in the Order
GT_ORDER_CONDITIONS_IN LIKE BAPICOND OCCURS 0 WITH HEADER LINE,
******Communication Fields for Maintaining Conditions in the Order
GT_ORDER_CONDITIONS_INX LIKE BAPICONDX OCCURS 0 WITH HEADER LINE.
Data definition *
DATA: BEGIN OF GT_FT_SALES OCCURS 0,
DOC_TYPE(4) , "Sales Document Type
SALES_ORG(4) , "Sales Organization
DISTR_CHAN(2) , "Distribution Channel
DIVISION(2) , "DIVISION(2)
SALES_DIST(6) , "Sales district
INCOTERMS1(3) , "Incoterms (part 1)
INCOTERMS2(28) , "Incoterms (part 2)
PMNTTRMS(4) , "Terms of payment key
PRICE_DATE(8) , "Date for pricing and exchange rate
PURCH_NO_C(35) , "Customer purchase order number
PURCH_NO_S(35) , "Ship-to Party's Purchase Order Number
EXCHG_RATE(8) , "Directly quoted exchange rate for pricing and statistics
CURRENCY(5) , "SD document currency
MATERIAL(18), "MATERIAL
TARGET_QTY(13) , "Target quantity in sales units
ITEM_CATEG(4) , "Sales document item category
MATL_GROUP(8) , "Material Group
PURCH_NO_C1(35), "Customer purchase order number
SALES_DIST1(6) , "Sales district
INCOTERMS11(3) , "Incoterms (part 1)
INCOTERMS21(28), "Incoterms (part 2)
PMNTTRMS1(4) , "Terms of payment key
EXCHG_RATE1(8) , "Directly quoted exchange rate for pricing and statistics
PRICE_DATE1(8) , "Date for pricing and exchange rate
TRG_QTY_NO(5) , "Factor for converting sales units to base units (target qty)
DIVISION1(2) , "DIVISION1
SALQTYNUM(5) , "Numerator (factor) for conversion of sales quantity into SKU
GROSS_WGHT(3) , "Gross Weight of the Item
NET_WEIGHT(15) , "Net Weight of the Item
UNTOF_WGHT(3) ,"Weight Unit
PARTN_ROLE(2) ,"Partner function
PARTN_NUMB(10) ,"Customer Number 1
********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>
ITM_NUMBER(6) ,"Item number of the SD document
REQ_QTY(8) , "Schedule line date
DLV_DATE(8) , "Schedule line date
MS_DATE(8) , "Material availability date
LOAD_DATE(8) , "Loading time (local time with reference to a shipping point)
GI_DATE(8), "Time of goods issue (local DATE, with reference to a plant)
TP_DATE(8) , "Transportation planning -time (local w/ref. to shipping pnt)
ITM_NUMBER2(6) , "Condition item number
END OF GT_FT_SALES,
MSG(240) TYPE C, " Return Message
E_REC(8) TYPE C, " Error Records Counter
REC_NO(8) TYPE C, " Records Number Indicator
S_REC(8) TYPE C, " Successful Records Counter
T_REC(8) TYPE C. " Total Records Counter
selection block for EXCEL UPLOAD FILE>>>>>>>>>>>>>>>>>>>>>>>>
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
*<<<<AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .>>>>>>>>>>>>
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = FILE.
**<<<<<<<<<<<<<<<<<START-OF-SELECTION.>>>>>>>>>>>>>>>>>>>>>>>>>>>
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD' "#EC *
EXPORTING
FILENAME = FILE
FILETYPE = 'DAT'
TABLES
DATA_TAB = GT_FT_SALES
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11.
IF SY-SUBRC 0 .
MESSAGE E000.
ENDIF.
SKIP 3.
FORMAT COLOR COL_HEADING INVERSE ON.
WRITE 40 TEXT-001.
FORMAT COLOR COL_HEADING INVERSE OFF.
SKIP 1.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE :/ TEXT-002, 13 SY-MANDT , 104 TEXT-003, 111 SY-UNAME,
/ TEXT-004, 13 SY-DATUM , 104 TEXT-005, 111 SY-UZEIT.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
SKIP 3.
LOOP AT GT_FT_SALES.
PERFORM SLALE_UPLOAD_DATA.
ENDLOOP.
T_REC = E_REC + S_REC.
SKIP 3.
FORMAT COLOR COL_TOTAL INVERSE ON.
WRITE: /38 TEXT-007, T_REC.
FORMAT COLOR COL_TOTAL INVERSE OFF.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE: /38 TEXT-008, E_REC.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
FORMAT COLOR COL_TOTAL INVERSE ON.
WRITE: /38 TEXT-009, S_REC.
FORMAT COLOR COL_TOTAL INVERSE OFF.
*& Form SLALE_UPLOAD_DATA
text
--> p1 text
<-- p2 text
FORM SLALE_UPLOAD_DATA .
*******<<<<<<<<<<Communication Fields: Sales and Distribution Document Header>>>>>>
GT_ORDER_HEADER_IN-DOC_TYPE = 'TA'.
GT_ORDER_HEADER_IN-SALES_ORG = GT_FT_SALES-SALES_ORG . "'0001'
GT_ORDER_HEADER_IN-DISTR_CHAN = GT_FT_SALES-DISTR_CHAN. "'01'
GT_ORDER_HEADER_IN-DIVISION = GT_FT_SALES-DIVISION. " '01'
GT_ORDER_HEADER_IN-SALES_DIST = GT_FT_SALES-SALES_DIST ."'000001'
GT_ORDER_HEADER_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1. "'CFR'
GT_ORDER_HEADER_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'
GT_ORDER_HEADER_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'
GT_ORDER_HEADER_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE ."'20060818'
GT_ORDER_HEADER_IN-PURCH_NO_C = '32'.
GT_ORDER_HEADER_IN-PURCH_NO_S = '32'.
GT_ORDER_HEADER_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE ."'1.00000'
GT_ORDER_HEADER_IN-CURRENCY = GT_FT_SALES-CURRENCY . " 'EUR'
********<<<Checkbox Fields for Sales and Distribution Document Header>>>>>>>>>
GT_ORDER_HEADER_INX-DOC_TYPE = 'X'.
GT_ORDER_HEADER_INX-SALES_ORG = 'X'.
GT_ORDER_HEADER_INX-DISTR_CHAN = 'X'.
GT_ORDER_HEADER_INX-DIVISION = 'X'.
GT_ORDER_HEADER_INX-SALES_DIST = 'X'.
GT_ORDER_HEADER_INX-INCOTERMS1 = 'X'.
GT_ORDER_HEADER_INX-INCOTERMS2 = 'X'.
GT_ORDER_HEADER_INX-PMNTTRMS = 'X'.
GT_ORDER_HEADER_INX-PRICE_DATE = 'X'.
GT_ORDER_HEADER_INX-PURCH_NO_C = 'X'.
GT_ORDER_HEADER_INX-PURCH_NO_S = 'X'.
GT_ORDER_HEADER_INX-EXCHG_RATE = 'X'.
GT_ORDER_HEADER_INX-CURRENCY = 'X'.
*****<<<<<<Communication Fields: Sales and Distribution Document Item>>>
GT_ORDER_ITEMS_IN-ITM_NUMBER = '000010'.
GT_ORDER_ITEMS_IN-MATERIAL = GT_FT_SALES-MATERIAL .
GT_ORDER_ITEMS_IN-PO_ITM_NO = '32'.
GT_ORDER_ITEMS_IN-CUST_MAT22 = 'AGNI-IV'.
GT_ORDER_ITEMS_IN-BILL_DATE = '20060808'.
GT_ORDER_ITEMS_IN-PLANT = '0001'.
*GT_ORDER_ITEMS_IN-STORE_LOC = '0001'.
GT_ORDER_ITEMS_IN-TARGET_QTY = GT_FT_SALES-TARGET_QTY . "'1000'
GT_ORDER_ITEMS_IN-ITEM_CATEG = GT_FT_SALES-ITEM_CATEG . "'TAN'
GT_ORDER_ITEMS_IN-MATL_GROUP = GT_FT_SALES-MATL_GROUP . "'01'
GT_ORDER_ITEMS_IN-PURCH_NO_C = GT_FT_SALES-PURCH_NO_C . "'32'
GT_ORDER_ITEMS_IN-SALES_DIST = GT_FT_SALES-SALES_DIST . "'000001'
GT_ORDER_ITEMS_IN-INCOTERMS1 = GT_FT_SALES-INCOTERMS1 . "'CFR'
GT_ORDER_ITEMS_IN-INCOTERMS2 = GT_FT_SALES-INCOTERMS2 . "'HAMBURG'
GT_ORDER_ITEMS_IN-PMNTTRMS = GT_FT_SALES-PMNTTRMS . "'0001'.
GT_ORDER_ITEMS_IN-EXCHG_RATE = GT_FT_SALES-EXCHG_RATE . "'1.00000'
GT_ORDER_ITEMS_IN-PRICE_DATE = GT_FT_SALES-PRICE_DATE . "'20060808'
*GT_ORDER_ITEMS_IN-SALES_UNIT = 'DZ'.
GT_ORDER_ITEMS_IN-TRG_QTY_NO = GT_FT_SALES-TRG_QTY_NO . "'23'
GT_ORDER_ITEMS_IN-DIVISION = GT_FT_SALES-DIVISION . "'01'
GT_ORDER_ITEMS_IN-SALQTYNUM = GT_FT_SALES-SALQTYNUM . "'32'
GT_ORDER_ITEMS_IN-GROSS_WGHT = GT_FT_SALES-GROSS_WGHT. " ' 25272000'
GT_ORDER_ITEMS_IN-NET_WEIGHT = GT_FT_SALES-NET_WEIGHT. "'24464000'
GT_ORDER_ITEMS_IN-UNTOF_WGHT = GT_FT_SALES-UNTOF_WGHT . " 'KG'
*GT_ORDER_ITEMS_IN-CURRENCY = 'EUR'.
APPEND GT_ORDER_ITEMS_IN.
****<<<<<<Communication Fields: Sales and Distribution Document Item>>>
GT_ORDER_ITEMS_INX-ITM_NUMBER = '000010'.
GT_ORDER_ITEMS_INX-MATERIAL = 'X'.
*GT_ORDER_ITEMS_INX-PO_ITM_NO = 'X'.
GT_ORDER_ITEMS_INX-CUST_MAT22 = 'X'.
GT_ORDER_ITEMS_INX-BILL_DATE = 'X'.
GT_ORDER_ITEMS_INX-PLANT = 'X'.
*GT_ORDER_ITEMS_INX-STORE_LOC = 'X'.
GT_ORDER_ITEMS_INX-TARGET_QTY = 'X'.
GT_ORDER_ITEMS_INX-ITEM_CATEG = 'X'.
GT_ORDER_ITEMS_INX-MATL_GROUP = 'X'.
GT_ORDER_ITEMS_INX-PURCH_NO_C = 'X'.
GT_ORDER_ITEMS_INX-SALES_DIST = 'X'.
GT_ORDER_ITEMS_INX-INCOTERMS1 = 'X'.
GT_ORDER_ITEMS_INX-INCOTERMS2 = 'X'.
GT_ORDER_ITEMS_INX-PMNTTRMS = 'X'.
GT_ORDER_ITEMS_INX-EXCHG_RATE = 'X'.
GT_ORDER_ITEMS_INX-PRICE_DATE = 'X'.
*GT_ORDER_ITEMS_INX-SALES_UNIT = 'X'.
GT_ORDER_ITEMS_INX-TRG_QTY_NO = 'X'.
GT_ORDER_ITEMS_INX-DIVISION = 'X'.
GT_ORDER_ITEMS_INX-SALQTYNUM = 'X'.
GT_ORDER_ITEMS_INX-GROSS_WGHT = 'X'.
GT_ORDER_ITEMS_INX-NET_WEIGHT = 'X'.
GT_ORDER_ITEMS_INX-UNTOF_WGHT = 'X'.
*GT_ORDER_ITEMS_IN-CURRENCY = 'x'.
APPEND GT_ORDER_ITEMS_INX.
*****<<<<<<Communications Fields: SD Document Partner: WWW
GT_ORDER_PARTNERS-PARTN_ROLE = 'WE'.
GT_ORDER_PARTNERS-PARTN_NUMB = '0000000057'.
***GT_ORDER_PARTNERS-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER . " '000010'.
APPEND GT_ORDER_PARTNERS.
*********<<<<Communications Fields: SD Document Partner: WWW>>>>>>>>>>>>>>>>>>
GT_ORDER_SCHEDULES_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER." '000010'
GT_ORDER_SCHEDULES_IN-REQ_QTY = GT_FT_SALES-REQ_QTY . "'234'
GT_ORDER_SCHEDULES_IN-DLV_DATE = GT_FT_SALES-DLV_DATE ." '20060824'.
GT_ORDER_SCHEDULES_IN-MS_DATE = GT_FT_SALES-MS_DATE . "'20060808'
GT_ORDER_SCHEDULES_IN-LOAD_DATE = GT_FT_SALES-LOAD_DATE. " '20060822'
GT_ORDER_SCHEDULES_IN-GI_DATE = GT_FT_SALES-GI_DATE . " '20060823'
GT_ORDER_SCHEDULES_IN-TP_DATE = GT_FT_SALES-TP_DATE . "'20060821'
APPEND gt_ORDER_SCHEDULES_IN.
*********<<<<Communications Fields: SD Document Partner: WWW FLAG>>>>>>>>>>>>>>>>>>
GT_ORDER_SCHEDULES_INX-ITM_NUMBER = '000010'.
GT_ORDER_SCHEDULES_INX-REQ_QTY = 'X'.
GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.
GT_ORDER_SCHEDULES_INX-MS_DATE = 'X'.
GT_ORDER_SCHEDULES_INX-LOAD_DATE = 'X'.
GT_ORDER_SCHEDULES_INX-GI_DATE = 'X'.
GT_ORDER_SCHEDULES_INX-DLV_DATE = 'X'.
APPEND gt_ORDER_SCHEDULES_INX.
********Communication Fields for Maintaining Conditions in the Order
GT_ORDER_CONDITIONS_IN-ITM_NUMBER = GT_FT_SALES-ITM_NUMBER ." '000010'
APPEND GT_ORDER_CONDITIONS_IN.
***Communication Fields for Maintaining Conditions in the Order
GT_ORDER_CONDITIONS_INX-ITM_NUMBER = '000010'.
APPEND GT_ORDER_CONDITIONS_INX.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN =
ORDER_HEADER_IN = GT_ORDER_HEADER_IN
ORDER_HEADER_INX = GT_ORDER_HEADER_INX
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT = GT_SALESDOCUMENT
TABLES
RETURN = GT_RETURN
ORDER_ITEMS_IN = GT_ORDER_ITEMS_IN
ORDER_ITEMS_INX = GT_ORDER_ITEMS_INX
ORDER_PARTNERS = GT_ORDER_PARTNERS
ORDER_SCHEDULES_IN = GT_ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX = GT_ORDER_SCHEDULES_INX
ORDER_CONDITIONS_IN = GT_ORDER_CONDITIONS_IN
ORDER_CONDITIONS_INX = GT_ORDER_CONDITIONS_INX
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_CCARD =
ORDER_TEXT =
ORDER_KEYS =
EXTENSIONIN =
PARTNERADDRESSES =
IF GT_RETURN-TYPE EQ 'E' .
E_REC = E_REC + 1.
READ TABLE GT_RETURN WITH KEY ID = 'V1'.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
REC_NO = E_REC + S_REC.
CONCATENATE TEXT-006 REC_NO ':'
GT_RETURN-MESSAGE INTO MSG SEPARATED BY SPACE .
CONDENSE MSG.
WRITE: / MSG.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
ELSEIF GT_RETURN-TYPE EQ 'S'.
S_REC = S_REC + 1.
FORMAT COLOR COL_POSITIVE INVERSE ON.
MSG = GT_RETURN-MESSAGE.
CONDENSE MSG.
WRITE: / MSG .
FORMAT COLOR COL_POSITIVE INVERSE OFF.
PERFORM COMMIT_MM.
ENDIF.
CLEAR: GT_RETURN[], MSG.
ENDFORM. " SLALE_UPLOAD_DATA
*& Form COMMIT_MM
text
--> p1 text
<-- p2 text
FORM COMMIT_MM .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = GT_RETURN.
clear: GT_ORDER_ITEMS_IN],GT_ORDER_CONDITIONS_IN[.
ENDFORM. " COMMIT_MM
Reward if useful. -
Web based booking in of service orders
A company I have recently been doing work for approached me with a interesting request. They wanted a method for users to be able to book in service orders themselves, online. Vendors were not being paid on time due to the fact acknowledgment of receipt of the orders was not given in a timely fashion.
Not everyone had access to SAP for cost reasons. Also quite a few people for some reason do not like the SAP interface. The spreadsheet they generated based on a SAP report was also proving ineffective due to users overwriting acknowledged orders.
With this in mind, Myself and the local ABAP programmer came up with the following solution.
The main ingredients of the solution involve the following:
1)Windows Active Directory
2)IIS, PHP
3)BAPI_GOODSMVT_CREATE,BAPI_TRANSACTION_COMMIT,BAPI_TRANSACTION_ROLLBACK
A Windows 2000 Intranet server was setup with PHP and the SAPRFC extension. Using Windows authentication we now select the correct recipient for the outstanding service orders report. The local ABAP programmer wrote a function to allow me to pass the username as a import parameter and receive the lines of outstanding orders in JTAB which I can pull off into an array using saprfc_table_read.
Here is an overview of how this works. I don't have the script in front of me. So I'm doing this from memory. I will add some more code specific detail at a later date.
1)PHP script calls local bespoke RFC function and sends RECIPENT (username) as an import parameter. RFC function fills JTAB with outstanding orders. Items in JTAB table are LIFNR,NAME1,EBELN,EBELP,TXZ01,EINDT,OPENQTY,MEINS,NETPR,WAERS,WEMPF. Each line is then read in a loop using the number of rows returned by saprfc_table_rows.
2)The user is then presented with a form which allows them to acknowledge orders to the maximum value of OPENQTY for each line item.
3)On submission the lines are sorted by vendor. We have to run the BAPI's multiple times for each vendor. You can't book in line items from different vendors in one go. Once this is done we can start calling our BAPI's to book the items in.
4)We setup a loop by vendor which does the following:
Call BAPI_GOODSMVT_CREATE and set the import parameters GOODSMVT_HEADER & GOODSMVT_CODE.
<code>
/* Please note this is not runnable code. It's code just to get a feel of whats going on. You will need to fill in the details */
$goodsmvt_header = array('PSTING_DATE' => '20050512',
'DOC_DATE'=> '20050512',
'REF_DOC_NO'=> 'Jsimmons');
$goodsmvt_code = array('GM_CODE' => '01');
/* $fhandle is from a connection we established earlier using saprfc_open & saprfc_function_discover */
saprfc_import($fhandle,'GOODSMVT_HEADER',$goodsmvt_header);
saprfc_import($fhandle,'GOODSMVT_CODE',$goodsmvt_code);
we now need to specify what items we wish to book in We have an array of line items associated with the current vendor in the outer loop which looks like this:
$lineitem = array('PO_NUMBER' => 'ponumber_from_user_form',
'PO_ITEM'=> 'poitem_from_user_form',
'MOVE_TYPE'=> '101',
'MVT_IND'=> 'B',
' ENTRY_QNT'=> ,'number_to_book_in_from_user_form');
saprfc_table_init($fhandle,'GOODS_MVT_ITEM');
foreach ($alllineitems as $lineitem) {
saprfc_table_append($fhandle,'GOODS_MVT_ITEM',$lineitem);
// check for errors using saprfc_error
/* Now we need to call our first BAPI to post the items */
$errorcode = saprfc_call_and_receive ($fhandle);
// Insert Error handling code in here
/* If the RESULTS table has entries , We have a problem */
if (saprfc_table_rows($fhandle,'RESULTS'){
$fhandle = saprfc_function_discover($rfcconnection,'BAPI_TRANSACTION_ROLLBACK');
$errorcode = saprfc_call_and_receive ($fhandle);
// Insert Error handling code in here
}else {
$fhandle = saprfc_function_discover($rfcconnection,'BAPI_TRANSACTION_COMMIT');
$errorcode = saprfc_call_and_receive ($fhandle);
// Insert Error handling code in here
saprfc_function_free($fhandle);
saprfc_close($rfconnection);
// Start loop again for next vendor
</code>
The overall results is that we now have a intranet application which allows users to easlily book in services orders. I even created a script which nags users via email to book in services orders. The nag email contains a link to the intranet page which contains the application.
Benefits:
1)Extremely cheap solution using every day tools
2)Browser based interface which everyone knows how to use.
3)Vendors are paid on time which allows the company to trade on more favorable terms.
4)Reduced administrator workload chasing people and making spreadsheets to capture outstanding service orders
I would recommend going through some of the documentation for the SAPRFC extension. This will give you an idea of what I'm trying to convey here, and fill in the gaps.
http://saprfc.sourceforge.net/src/saprfc.html
Have fun !Jason,
Craig is correct, your posting would make an excellent weblog. Perhaps creating an accurate step-by-step with actual code would be the way to go. You certainly will be rewarded with contribution points for your effort!
To become a weblogger just visit Submit Content in the upper Nav level. https://www.sdn.sap.com/sdn/weblogs.sdn?node=linkwnode3-6&contenttype=url&content=/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fsdn!2fiviews!2fframework!2fcom.sap.sdn.weblogs?redirect=https://weblogs.sdn.sap.com/apply/ and request to be a weblogger. After filling out the template you will be approved.
Craig,
You seem to be doing a fantastic job of moderating and encouraging the activity in these threads. This will be rewarded as well!
thanks,
Marilyn
SDN Community Manager -
Report for Material Issued against Service Orders But not Billed.
Hi Experts,
For CRM Service Orders Based on the Reservation number generated in CRM we will make the Goods issue document in ECC.
My Question In CRM Do we have any standard report to see Material issued against CRM Service orders but not billed. i.e. Work in progress.
Thanks in Advance,
AbhineshHi Vivek,
What I wanted to say that you won't get information from VAV about billing since as far as I know it doesn't contain any relevant table.
You should try create a query using LIKP-LIPS-(joint type: left outer)-VBRK. This will connect deliveries to billing document, you can also get SO number. Please try this.
(Sorrowully I don't know which logical database would be good for you)
BR
Csaba -
Count of Service Orders issue in the Bex Report
Hi Experts,
I have a report displaying the Count of Service Orders. The count of service orders I have brought using replacement path variable.
The count is getting displayed correctly. When I have the service order in a single record.
The moment I drag and drop the material from the Free Characteristic pane. The count of Servie order increases because the same service order is repeated for Material A ( in the First Line) and Material B ( in the Second Line ).
And my report doesn't have any keyfigure to built an Exception Aggregate.
Can anyone please tell me how do I make my Count to read only the unique Service orders.
ThanksHi Shanthi Bhaskar,
Thanks for your link.
I have already referred to this link and created the count of Service orders. But it is not uniquely identifys the service order numbers.
Irrespective how many number of time the same service order gets repeated in the report it should only give me a count as 1 for other service order as 2.
Hope its clear.
Thanks -
Cost Report from Service order cost
Hi Gurus,
Request you help in developing a custom report to fetch different costs involved in service order.
Let me explain the scenarios:
1. As per our current settings, if there is any goods issue against the service order the cost (cost of the material) is booked against 'Service Exchange Cost' in the value category in the order.
Reqt:- If there is any goods issue against the order, the system should show the cost of the goods (material) in the report as service exchange cost.
Please let me know from which table I can get this cost? From which table I can know whether there is a goods issue against the order or not?
Please guide me in this.
Regards,
SAMHi SAM,
Please use the PMCO table for order costing.
For goods issue status you can go with system status i.e. GMPS- Goods Movement Posted. This will be availed from JEST table agaionst PM Order.
Also there is field for final issue tick (KZEAR) which need to be selected during goods issue against PM Order. This status can be achieved from table AUFM against the reservations made for PM Order.
Sundar
Edited by: Sundar Desai on Mar 3, 2011 5:07 PM -
How can i retrieve Items and Dates from an specific Service Order in a Report?
Hi Partners,
i was debbuging a lot without a good solution,
My team develop a new report (SE38 Report) to list on the screen an specific Service Order (BTQSrvOrd) with their corresponding Items & Dates (BTHeaderDates)
Here is my code (Attached on Message), i reach the data of the service order but i need to get the children information for Items & Dates but i saw thar those 2 types are in a 4 lower level and it's a little difficult to access througt code.
Regards.Let me get this straight.....You lost your phone. You never backed it up, either to your computer or to a cloud service.
How in the world would you expect to get data back? -
Material BOM explosion in Service Order components
Hi experts,
I created a Material BOM with transaction code CS01.
Then I try to add this BOM in the component of a service order.
What I expected is the BOM to be exploded in the service order. But this behaviour doesn't occur.
Do you know what I can do to trigger a Material BOM explosion at service order level.
By the way, the BOM is not exploded after the service order (in the reservation or in MIGO).
Thank you for your help.Hi Özgen,
Thank you for help.
Special Procurement 50 didn't exist in my system.
I created it in SPRO for the plant with the Procurement Type F (External Procurement) and the flag Phantom Item checked..
Then I created
- Material A (MM01)
- Material BOM A (CS01) with:
-- item 1 Material B (which has Spec Proc Type 50 in MM02-MRP2)
-- item 2 Material C (which has Spec Proc Type 50 in MM02-MRP2)
After that I created a Service Order (IW31)
I put Material A in the Component tab with quantity 1.
The BOM remains unexploded.
Did I miss something? -
Hi Gurus,
How to generate a report to see milage postings (activity type) ex. milage code KMSGFS on a service orders?
Is there a standard report or transaction which I can use??
Kindly comment with your suggestions.
Thanks in advance!
Bawa
Edited by: Bawa Bawa on Jan 27, 2009 1:36 PMWorking with the Oracle Enterprise Manager group to integrate closely with their monitoring solutions has been one of the most important advantages of joining the Oracle team. As our customers have started to use CRM more deeply as part of their business processes, CRM has quickly become Mission Critical, with 24/7 uptime requirements. Furthermore, as CRM becomes further integrated into the enterprise, knowing the status and health of the connections to multiple backend systems becomes evermore crucial.
Through our partnership with the Oracle Enterprise Manager, we aim to support true Enterprise-class CRM. We are the only solution out there with over six million live users, and we are leveraging the knowledge gained from those customers in our Enterprise Manager integration. With the real-time monitoring and diagnosis that Oracle Enterprise Manager provides, we simplify the process of managing sophisticated CRM implementations which span organizations and systems. If you have a Siebel implementation with four servers or more, or with integrations to several systems, you owe it to yourself to check out Oracle Enterprise Manager. -
Hi All,
How to take out a cost report for a service order? like my requirement is how the cost of a Service Order is hitting to which cost center and profit center and company code and posting of the concerned GL along with the activity type.for example i have a service order where some activity is there with various hours all togather 25 hrs, how this is costed and posted in whic cost center and GL and Porfit center along with the rate.
Thanks,
PrasadPlease, try transaction KOB1. You also should be able to drill-down to line items with a partner object view.
-
In the report getiing two lines per each service order
Hi Experts,
when I drill down callouts on back reporting level by Component code, Reason code, and action code. I see two lines per service order. I have two records in MP for the same service order. Is there any possibility that I get only one record in report without changing the data at multi provider level?
Example:
Report Output
S. no Equipment Calender date Order type Service order Action code Order count
1 30000074 18.02.2009 ysm1 62704142 004/# 1
004/# 0
2 30000275 03.08.2009 ysm3 9AHK40218030 004/# 0
004/20 1
3 30042305 02.07.2009 ysm4 9AAU70443928 002/70 0
002/80 1
Could you please see the below scenarios and suggest.
Scenario 1
For the S. no-1) for the action code 004/# and the order count 1 should displayed in the report and action code 004/# and order count 0 should not be displayed in the report.
Scenario 2
For the S. no-2) for the action code 004/20 and the order count 1 should displayed in the report and action code 004/# and order count 0 should not be displayed in the report.
Scenario 3
For the S. no-3) for the action code 002/70 and the order count 0 should displayed in the report and action code 004/80 and order count 1 also should be displayed in the report.
Regards,
SitaHello,
THis can be achieved with foll two ammendments:
1) Restrict Action Code in the filter to exclude # values.
2) Create condition on Order Count to display where it is GT 0.
Regards,
Shashank
Maybe you are looking for
-
How to load a text file?
I'm trying to load a text file and I've run into a wall. So far, I've loaded swf files, image files and XML files without problems. But the text files just don't seem to load. It's not a tough situation. The files are in the same directory as the app
-
Journal Project can't display slideshow
Hi, For that old version iphoto, i can create my journal project and play the slideshow in "Dateline" mode. This mode will display what i added in the journal like note, header, memory and food note. For new version iphoto, inside my journal Project
-
JSF design view - visual components are shrinking
Hello, I have some strange issue while using Design view for JSF and data binding. Once I drop any data control elements into visual component (panel, etc) my visual components are shrinking to such size, that I cannot distinguish any elements within
-
How to download Support Package without using Solution Manager
Hello Guru, I am planning to upgrade our Netweaver System to SP12, which is released after Apirl 2007, now SAP AG requires Solution Manager to approve the SP download request, then I can use SAP Download Manager to download basket. Is there any way t
-
I have been trying all day to download the 3.2 update (in Windows 7 Professional) and have been unable to - it gets nearly there and then fails! I have even tried the download only option and it fails saying there is an Invalid Signature? Any ideas -