How open a service order using event handling
HOw to open a service order using event handling
Hi,
Can you explain your requirement elaborately.
I understand from it as, you want to open Service order creation page, based on some event(may be submit button).
For that technically you can use navigation->goto_page('Provide the URL').
or you can use inbound-plug and out-bound plug concept for naviagation.
Regards,
Devender V
Similar Messages
-
How to create Service Order using bapi BAPI_ALM_ORDER_MAINTAIN
Hi,
I want to create the Service Order with multiple Operations & Components.
I am using this bapi BAPI_ALM_ORDER_MAINTAIN.
But this BAPI creates the service order with only one Operation at a time. Can multiple operations be created using this bapi.
If not could any one please guide to use this or other BAPI to create Service Order with multiple Operations & Components?
Thank's in advance,
ChetanRead the Documentation of the BAPI.
Operations and Components are table parameters, you can pass multiple data. did you check that.... -
How to create Service Order and then Invoice using IW31
I have problem to create Service Order and then Billing,
could anyone tel me ,what is process flow.
Thanksa in Advance.Hi Suniel,
PLease take a look at:
Re: Problem to create Service Order using IW31 and then Invoice for that
Best regards,
demas -
How to create the service order using CRMXIF_ORDER_SAVE
Hi Friends,
I want to create service order using thsis function module
CRMXIF_ORDER_SAVE and quantity also in this service order transaction.
Any body please explain the above questionHi Friends,
I want to create service order using thsis function module
CRMXIF_ORDER_SAVE and quantity also in this service order transaction.
Any body please explain the above question -
Creating a service order using FM
Hello everyone,
I am new to CRM technical. I have a requirement to create a service order using standard function module passing only 3 parametrs like category1, category2 and short text. How should I start the report. Can anyone help me in posting the code and the approach.
Thanks in advance!Hi Sandeep,
The best approach to learn this development is to debug the standard functionality by providing the data which you need in your requirement. Then you will get familiar with what are structures which needs to be populated and send to One Order API - CRM_ORDER_MAINTAIN.
This above mentioned API will be the one which you need to use in the creation of Service Order. So, you can also search with the above mentioned Module.
Hope this helps. Scan the Forum for FAQ's on problems that you might get in the development.
Thanks,
Samantak. -
Creating service order using BAPI_BUSPROCESSND_CREATEMULTI
Hi Experts,
I have a requirement to create a Service order using a BAPI.
I'm trying to use the BAPI BAPI_BUSPROCESSND_CREATEMULTI. I found some code related to this BAPI on this forum and and I've written my code based on that and while executing it i'm getting a short dump. Could anyone please help me figure out what the problem is.
My code is as follows:
data: lv_header_guid type guid_32.
data: begin of lit_header occurs 0,
include type BAPIBUS20001_HEADER_INS,
end of lit_header.
data: wa_header type BAPIBUS20001_HEADER_INS.
data: begin of lit_inputfields occurs 0,
include type BAPIBUS20001_INPUT_FIELDS,
end of lit_inputfields.
data: wa_inputfields type BAPIBUS20001_INPUT_FIELDS.
data: begin of lit_partner occurs 0,
include type BAPIBUS20001_PARTNER_INS,
end of lit_partner.
data: wa_partner type BAPIBUS20001_PARTNER_INS.
Create Contract header guid
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_32 = lv_header_guid.
Fill orderadm_h
wa_header-guid = lv_header_guid.
wa_header-process_type = 'YSC'.
APPEND wa_header TO lit_header.
Fill input fields
MOVE: lv_header_guid TO wa_inputfields-ref_guid,
'A' TO wa_inputfields-ref_kind,
'0001' TO wa_partner-ref_partner_handle,
'ORDERADM_H' TO wa_inputfields-objectname,
'PROCESS_TYPE' TO wa_inputfields-fieldname.
APPEND wa_inputfields TO lit_inputfields.
CLEAR wa_inputfields.
Fill PARTNER DETAILS
Sold to Party
MOVE: lv_header_guid TO wa_partner-ref_guid,
'A' TO wa_partner-ref_kind,
'0001' TO wa_partner-ref_partner_handle,
'CRM000' TO wa_partner-partner_fct,
'5000000288' TO wa_partner-partner_no,
'BP' TO wa_partner-no_type,
'BP' TO wa_partner-display_type,
'X' TO wa_partner-mainpartner.
APPEND wa_partner TO lit_partner.
CLEAR wa_partner.
Fill input fields
MOVE: lv_header_guid TO wa_inputfields-ref_guid,
'A' TO wa_inputfields-ref_kind,
'0001' TO wa_inputfields-logical_key,
'PARTNER' TO wa_inputfields-objectname.
MOVE 'PARTNER_FCT' TO wa_inputfields-fieldname.
APPEND wa_inputfields TO lit_inputfields.
MOVE 'PARTNER_NO' TO wa_inputfields-fieldname.
APPEND wa_inputfields TO lit_inputfields.
MOVE 'NO_TYPE' TO wa_inputfields-fieldname.
APPEND wa_inputfields TO lit_inputfields.
MOVE 'DISPLAY_TYPE' TO wa_inputfields-fieldname.
APPEND wa_inputfields TO lit_inputfields.
CLEAR wa_inputfields.
CALL FUNCTION 'BAPI_BUSPROCESSND_CREATEMULTI'
TABLES
HEADER = lit_header
ITEM =
ACTIVITY =
SALES =
PARTNER = lit_partner
ORGANISATION =
SHIPPING =
APPOINTMENT =
TEXT =
SERVICE_OS =
STATUS =
INPUT_FIELDS = lit_inputfields
CREATED_PROCESS =
RETURN =
LEAD =
OPPORTUNITY =
PRODUCT =
SCHEDULELINE =
CUSTOMER_HEAD =
CUSTOMER_ITEM =
PRICING =
PRICING_ITEM =
CONDITION_CREATE =
BILLING =
CONFIG_CFG =
CONFIG_BLB =
CONFIG_INS =
CONFIG_PRT =
CONFIG_VAL =
CONFIG_VK =
CONFIG_REF =
ADDRESS =
BILLPLAN =
BILLPLAN_DATE =
EXTENSIONIN =
DOCUMENT_FLOW =
BATCH =
PRICING_AGR_CRM =
FINPROD_ITEM =
CANCEL =
CANCEL_IR =
PRODUCT_LIST =
PRODUCTS =
OBJECTS =
PAYPLAN =
PAYPLAN_DATE =
CONFIG_FILTER_CFG =
CONFIG_FILTER_INS =
CONFIG_FILTER_PRT =
CONFIG_FILTER_VAL =
ACTIVITY_I =
EXT_REF =
ENDFUNCTION.
I'm getting the following dump.
Runtime Errors ITAB_ILLEGAL_COMPONENT
Date and Time 07.09.2006 21:29:03
Short dump has not been completely stored (too big)
Short text
Invalid line component &V2 in "... KEY k1 = v1 ... kn = vn".
Error analysis
When the ABAP/4 program "SAPLCRM_BUSPROCESSND_BAPI" attempted to process the
internal table "HEADER[]"
with "... KEY k1 = v1 ... kn = vn", a component "HANDLE " was specified
dynamically as the contents
of the field "LV_STR_HANDLE". However, the line type "u" of the internal table
"HEADER[]"
contains no component "HANDLE ".
| -
Information on where terminated
Termination occurred in the ABAP program "SAPLCRM_BUSPROCESSND_BAPI" - in
"SET_RETURN_VALUES".
The main program was "RS_TESTFRAME_CALL ".
In the source code you have the termination point in line 36
of the (Include) program "LCRM_BUSPROCESSND_BAPIF80".
Source Code Extract
Line
SourceCde
6
7
text
8
9
-->P_LT_ORDERADM_H_COM text
10
-->P_LT_ORDERADM_I_COM text
11
<--P_HEADER text
12
<--P_ITEM text
13
14
form set_return_values tables header structure BAPIBUS20001_HEADER_INS
15
item structure BAPIBUS20001_item
16
using p_lt_orderadm_h_com type any table
17
p_lt_orderadm_i_com type any table
18
19
20
data: lv_str_handle type fieldname,
21
lv_str_headerhandle type fieldname,
22
lv_str_objectid type fieldname.
23
24
25
field-symbols: <ls_orderadm_h> type crmt_orderadm_h_com,
26
<ls_orderadm_i> type crmt_orderadm_i_com,
27
<ls_header> type BAPIBUS20001_HEADER_INS,
28
<ls_item> type BAPIBUS20001_item.
29
30
31
lv_str_handle = 'HANDLE'.
32
lv_str_headerhandle = 'HEADER_HANDLE'.
33
lv_str_objectid = 'OBJECT_ID'.
34
35
loop at p_lt_orderadm_h_com assigning <ls_orderadm_h>.
>>>>>
read table header with key (lv_str_handle) = <ls_orderadm_h>-handle
37
(lv_str_objectid) = <ls_orderadm_h>-object_id
38
assigning <ls_header>.
39
if sy-subrc = 0.
40
<ls_header>-guid = <ls_orderadm_h>-guid.
41
endif.
42
endloop.
| 43|
Could anyone please help me with this.
Thanks,
Preethi
Message was edited by: Preethi SoothFirst off. Debug.
Put a break point on the line that is generating the short dump and run your code. The ABAP debugger should display before the dump...now....
The error specifies that the line type of the table HEADER (which is the internal representation of your lit_header table and has line type BAPIBUS20001_HEADER_INS ) doesn't have a field called HANDLE.
Check if it does (it should have or something is very wrong, and you should report a bug to SAP).
Check all runtime variables for that command. See if the table has any values in it. Try using your lit_header table with header-line or not.
Your in a far better position to determine what the error is then me. Right now, I don't have access to a CRM server.
From my experience that BAPI is a piece of .... It is hard finding functions in CRM that actually do what you want...properly...Try using CRM_ORDER_CREATE (i think it's called like that). Much better, and if you need RFC capability just write a wrapper RFC.
Message was edited by: João Sousa -
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 -
How to link Purchase Order using account assignment category "F"* to asset
Hello,
I'd like to know how to link Purchase Order, using account assignment category "F" to asset .
When I enter asset no. in my ANEK table, po no(ebeln) and po item(ebelp) field is blank.
whether every line item in a Purchase order have differrent asset.
can anybody give me the link between asset and materal no?
Regards,
RachelHi Rachel,
Your message is a little bit confusing. There is no link between the asset and material number. If you want to post your purchase order, using account assignment F - that is internal order - you may do it. Futher, you can settle the postings from this order to asset.
You can read more here:
http://help.sap.com/saphelp_erp60_sp/helpdata/en/4f/71e7cd448011d189f00000e81ddfac/frameset.htm
Regards,
Eli -
How to create SERVICE PR using BAPI_PR_CREATE
Hi everyone,
How to create SERVICE PR using BAPI_PR_CREATE
Regards,
My Code(it doesn't work,I don't know what's wrong.):
*& Report ZWTEST
REPORT zwtest.
DATA: header TYPE bapimereqheader,
headerx TYPE bapimereqheaderx,
item LIKE TABLE OF bapimereqitemimp WITH HEADER LINE,
itemx LIKE TABLE OF bapimereqitemx WITH HEADER LINE,
account LIKE TABLE OF bapimereqaccount WITH HEADER LINE,
accountx LIKE TABLE OF bapimereqaccountx WITH HEADER LINE,
service LIKE TABLE OF bapi_srv_service_line WITH HEADER LINE,
servicex LIKE TABLE OF bapi_srv_service_linex WITH HEADER LINE,
serviceaccount LIKE TABLE OF bapi_srv_acc_data WITH HEADER LINE,
serviceaccountx LIKE TABLE OF bapi_srv_acc_datax WITH HEADER LINE,
preq_no LIKE bapimereqheader-preq_no,
lt_return LIKE TABLE OF bapiret2 WITH HEADER LINE,
wa_return LIKE bapiret2.
header-pr_type = 'NB'."订单类型(采购)
headerx-pr_type = 'X'.
CLEAR: item.
item-preq_item = '00010'.
item-pur_group = '426'."采购组
item-short_text = '服务类PR'."短文本
item-plant = '1051'."工厂
item-matl_group = 'AS07'."物料组
item-item_cat = '9'."项目类别
item-acctasscat = 'K'."科目分配类别
item-pckg_no = '0000000001'."软件包编号
APPEND item.
CLEAR: itemx.
itemx-preq_item = '00010'.
itemx-preq_itemx = 'X'.
itemx-pur_group = 'X'."采购组
itemx-short_text = 'X'."短文本
itemx-plant = 'X'."工厂
itemx-matl_group = 'X'."物料组
itemx-item_cat = 'X'."项目类别
itemx-acctasscat = 'X'."科目分配类别
itemx-pckg_no = 'X'."软件包编号
APPEND itemx.
CLEAR: account.
account-preq_item = '00010'.
account-serial_no = '01'.
*account-quantity = '0.955'.
*account-distr_perc = '95.5'.
account-gl_account = '4205020000'.
account-costcenter = '1042000001'.
*account-co_area = 'CNOC'.
*account-profit_ctr = '9999999999'.
APPEND account.
CLEAR: accountx.
accountx-preq_item = '00010'.
accountx-serial_no = '01'.
accountx-preq_itemx = 'X'.
accountx-serial_nox = 'X'.
*accountx-quantity = 'X'.
*accountx-distr_perc = 'X'.
accountx-gl_account = 'X'.
accountx-costcenter = 'X'.
*accountx-co_area = 'X'.
*accountx-profit_ctr = 'X'.
APPEND accountx.
CLEAR: service.
service-doc_item = '00010'.
service-outline = '0000000001'.
service-srv_line = '0000000010'.
service-short_text = 'service test'.
service-quantity = '10.000'.
service-uom = 'AU'.
service-gross_price = '10.00'.
service-currency = 'CNY'.
*service-matl_group = 'AS07'."物料组
APPEND service.
CLEAR: servicex.
servicex-doc_item = '00010'.
servicex-outline = '0000000001'.
servicex-srv_line = '0000000010'.
servicex-short_text = 'X'.
servicex-quantity = 'X'.
servicex-uom = 'X'.
servicex-gross_price = 'X'.
servicex-currency = 'X'.
*servicex-matl_group = 'X'.
APPEND servicex.
CLEAR: serviceaccount.
serviceaccount-doc_item = '00010'.
serviceaccount-outline = '0000000001'.
serviceaccount-srv_line = '0000000010'.
serviceaccount-serial_no = '01'.
serviceaccount-serial_no_item = '01'.
serviceaccount-percent = '100'.
APPEND serviceaccount.
CLEAR: serviceaccountx.
serviceaccountx-doc_item = '00010'.
serviceaccountx-outline = '0000000001'.
serviceaccountx-srv_line = '0000000010'.
serviceaccountx-serial_no = '01'.
serviceaccountx-serial_no_item = 'X'.
serviceaccountx-percent = 'X'.
APPEND serviceaccountx.
CALL FUNCTION 'BAPI_PR_CREATE'
EXPORTING
prheader = header
prheaderx = headerx
* TESTRUN =
IMPORTING
number = preq_no
* PRHEADEREXP =
TABLES
return = lt_return
pritem = item
pritemx = itemx
* PRITEMEXP =
* PRITEMSOURCE =
praccount = account
* PRACCOUNTPROITSEGMENT =
praccountx = accountx
* PRADDRDELIVERY =
* PRITEMTEXT =
* PRHEADERTEXT =
* EXTENSIONIN =
* EXTENSIONOUT =
* PRVERSION =
* PRVERSIONX =
* ALLVERSIONS =
* PRCOMPONENTS =
* PRCOMPONENTSX =
* SERVICEOUTLINE =
* SERVICEOUTLINEX =
servicelines = service
servicelinesx = servicex
* SERVICELIMIT =
* SERVICELIMITX =
* SERVICECONTRACTLIMITS =
* SERVICECONTRACTLIMITSX =
serviceaccount = serviceaccount
serviceaccountx = serviceaccountx
* SERVICELONGTEXTS =
* SERIALNUMBER =
* SERIALNUMBERX =
* 处理错误消息:通过判断消息的类型,来判断BAPI是否成功
READ TABLE lt_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
WRITE: / '成功创建采购申请', preq_no.
ENDIF.
LOOP AT lt_return INTO wa_return.
WRITE: / wa_return-message, wa_return-type, wa_return-id, wa_return-number.
ENDLOOP.see note:
1950319 - How to create service PR with BAPI_PR_CREATE.pdf -
How to fetch service order with partucular system status and user status
Hello All,
How to fetch service orders with specific system status and user status.
thanksI want tables or views from where I can fetch service orders. I have to design ALV report based on this.
I want to fetch released service orders with status INIT and RENT.
Here, SYSTEM Status = Released and
USER Status = INIT
RENT
So is there any function module available for the same..... -
How to change Service order quantity using BAPI/FM
Hi All,
Can any body tell me how to change the Service Order quantity (in IW32) using a FM or a BAPI.
I tried using the BAPI: BAPI_ALM_ORDER_MAINTAIN but I am unable to change the quantity. May be I might be missing some parameter. If anybody has done this please let me know the parameters that needs to be passed or if there is any other way out.
Points will be rewarded to useful answers!!
Thanks,
Susanth.Hi!
I have used this BAPI.read the documentation properly and after calling this bapi call BAPI_TRANSACTION_COMMIT then only expected results com n get saved.
for ex:
call function 'BAPI_ALM_ORDER_MAINTAIN'
tables
it_methods = itab_methods
it_header = itab_header
IT_HEADER_UP =
it_header_srv = itab_header_srv
IT_HEADER_SRV_UP =
it_userstatus = itab_userstatus
it_partner = itab_partner
IT_PARTNER_UP =
it_operation = itab_operation
IT_OPERATION_UP =
it_relation = itab_relation
IT_RELATION_UP =
it_component = itab_component
IT_COMPONENT_UP =
it_objectlist = itab_objectlist
IT_OBJECTLIST_UP =
it_olist_relation = itab_olist_relation
it_text = itab_text
it_text_lines = it_text_lines
it_srule = itab_srule
IT_SRULE_UP =
it_tasklists = itab_tasklists
extension_in = itab_extension_in
return = itab_return
et_numbers = itab_et_numbers
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'
IMPORTING
RETURN =
reward points if helpful. -
How to Update multiple items in other list using event handler?
Hi All,
If i update a item in a list, then i should update multiple items in another list need to be update. How to achive using event receivers?Hi Sam,
According to your description, my understanding is that you want to update multiple items in another list when updated a list item.
In the event receiver, you can update the multiple item using Client Object Model.
Here is a code snippet for your reference:
public override void ItemUpdated(SPItemEventProperties properties)
string siteUrl = "http://sp2013sps/sites/test/";
ClientContext clientContext = new ClientContext(siteUrl);
List oList = clientContext.Web.Lists.GetByTitle("another list name");
ListItem oListItem = oList.GetItemById(1);
oListItem["Title"] = "Hello World Updated!";
oListItem.Update();
clientContext.ExecuteQuery();
Best regards,<o:p></o:p>
Zhengyu Guo
Zhengyu Guo
TechNet Community Support -
How do i exit a while loop using event handler
Hello,
I have an event handler structure within which i run a while loop for a particular event. I would like to interrupt the execution of this while loop as soon as another event occurs, even if the while loop has not finished execution. I have tried so many ways, the best i could get is exiting one itteration after the new event occurs which is no good for me.
Any suggestions???
Thanks
MeInstead of having a task while loop in an event case, put your task while loop in parallel with the loop surrounding the event structure. When the event which should start the task occurs, you can signal the start of the task while loop. You could use local variables of references to start/stop the loop when an event occurs. You could also use notifiers instead of variables to pass signals to start/stop the while loop. In general you should have a while loop for the event structure, and a parallel while loop to do the tasks. The parallel loop is controlled by variables or notifiers which are set in the event cases.
- tbob
Inventor of the WORM Global -
How to update sales orders using B1WS in SAP 8.8 PL18
Hello all.
We are having a problem updating sales orders using Sap Business One Web Service ( B1WS ).
We are running SBO 8.8 PL18, MS-SQL 2008, and all is fine when using the SBO client.
But when it comes to updating sales orders through B1WS we just cannot get it to work.
We can add new orders easily without problems. Updating orders always gives this error:
\[ORDR.PayDuMonth\]\[line: 0\] , 'Field cannot be updated (ODBC -1029)'
We have checked and verified multiple times that our setup is correct.
Also the WDSL files are verified.
We can update orders just fine using the sboclient.
And using B1WS we can basically do everything, besides updating.
We have also tried this on different company db's, so we are quite sure this is not
something related to some general setting we missed, but who knows?
We have tried different ways to "assemble" the order before updating, but it always
ends with the above error.
Here is an example of one of the tests, where we load an order by docentry,
increment the quantity of all open lines by '1', and then try to update it.
protected void Page_Load(object sender, EventArgs e)
// First we login
string sessionId = "";
LoginService.LoginService l_login = new LoginService.LoginService();
LoginService.LoginDatabaseType l_dbtype = LoginService.LoginDatabaseType.dst_MSSQL2008;
LoginService.LoginLanguage _lang = LoginService.LoginLanguage.ln_English;
string _server = "SAP-8_8PL18";
string _licserver = "SAP-8_8PL18:30000";
string _db = "my_test_company";
string _user = "manager";
string _pass = "********";
try
sessionId = l_login.Login(_server, _db, l_dbtype, true, _user, _pass,
_lang, true, _licserver);
catch (Exception ex)
Response.Clear();
Response.Write(ex.Message);
Response.End();
if (sessionId == "")
Response.Clear();
Response.Write("No sessionId");
Response.End();
// We are logged in and have a sessionId
// Now load a valid open order by docentry
try
OrdersServiceRef.OrdersService orderService = new OrdersServiceRef.OrdersService();
orderService.MsgHeaderValue = new OrdersServiceRef.MsgHeader();
orderService.MsgHeaderValue.SessionID = sessionId;
orderService.MsgHeaderValue.ServiceName = OrdersServiceRef.MsgHeaderServiceName.OrdersService;
orderService.MsgHeaderValue.ServiceNameSpecified = true;
OrdersServiceRef.DocumentParams docParams = new OrdersServiceRef.DocumentParams();
docParams.DocEntry = 31; // Docentry of a known open order
docParams.DocEntrySpecified = true;
OrdersServiceRef.Document order = orderService.GetByParams(docParams);
OrdersServiceRef.DocumentDocumentLine line = null;
for (int i = 0; i < order.DocumentLines.Length; i++)
line = order.DocumentLines<i>;
if (line.LineStatus == OrdersServiceRef.DocumentDocumentLineLineStatus.bost_Open)
line.Quantity += 1;
orderService.Update(order);
catch (System.Web.Services.Protocols.SoapException ex)
Response.Clear();
Response.Write(ex.Message);
Response.End();
catch (Exception ex)
Response.Clear();
Response.Write(ex.Message);
Response.End();
Response.Clear();
Response.Write("All OK");
Response.End();
I hope that someone has an idea as to why this happens.
The customer often changes quantity or adds lines on their orders,
and the only way to solve it so far has been to make a new order and
close the old one.
Thanks in advance
J. ThomsenHi,
Welcome you post on the forum.
Have you checked if you only update a specific line instead of a loop?
Thanks,
Gordon -
How to change Service Item using BAPI_ENTRYSHEET_CREATE.
Hi All,
There's a requirement for me to upload/ Create Entry Sheet using BAPI_ENTRYSHEET_CREATE from the source file.
The Header was given to me but the Service Item, they would like the flexibility to change the existing lines that was adopted from ML81N.
Eg of the file.
Header given:-
PO NO
Po Item
Short Text
Ext Entry Sheet No
Service Location
Period Start
Period End ....n so on
Service Item given:-
Service Line (Extrow)
Service Order Qty (Memge)
Ext Service No (EXTSRVNO)
The objective of this file is
1) Create Service Entry Sheet (using Header)
2) Adopt the Service Item
3) Change Service Item (using Service Item)
Could anyone guide me how to do it? If Using BAPI_ENTRYSHEET_CREATE...is actually creating it with full details of the upload file. but given to me, t requrement is they would like to create n change the item.
Appreciates your help.
Thank you.
Regards,
Sheena WeeHi ,
If you are trying to test the FM through TCode SE37 then it will not give you the desired output.Do one thing create a test program and there you call the FM with your data.I hope in this way you can solve the issue.
Regards,
Sarbajit.
Maybe you are looking for
-
In my network there are an cisco call manager and cisco gatekeeper.I added the gatekeeper on a CCM bacause of IP Phones can call ATA end points.I finished this task succesfully but there are a problem . When I call from IP phone to ATA endpoints I ca
-
String to XML including namspaces.
How? I have this String "<foo:bar></foo:bar>". When try to parse it with Oracle Parser v2 it says oracle.xml.parser.v2.XMLParseException: Namespace prefix 'foo' used but not declared.Im not able to change the XML by adding somekind of xmlns:foo. Perh
-
Iphone 3gs compatiblity with Tom tom sat nav
just got anew I phone 3GS - after checking it had bluetooth etc ; I assumed it would interface using bluetooth, with my Tom Tom not only for hands free calling but also to download up to date traffic information - as did my old Samsung SGH G600. The
-
Where is my quick took in fireworks cs5.1
Im trying to follow a video and they are using "quick tool" but I cant find mine. I am very new to fireworks. Thanks Karen
-
Time Machine never gets out of Indexing backup...
I had a problem with my iMac earlier today. My first instinct was to create a complete backup. But since then I've not been able to create a backup. Time Machine never gets out of Indexing backup... Each time I try to backup the message log contains: