Using VC to call R3 transactions ?
Can we use VC to call the RFC in R/3 which were coded in ABAP. I mean to ask can we use VC to call the fm's written in ABAP and generate reports on them. Can we do it without the bw infoobjects.
Hi Buddy...!
Visual Composer modelers increase productivity by reducing their development effort time from weeks and months to days. Domain experts gain the means to express their requirements directly rather than conveying them to developers. This narrows the gap between application definition and implementation.
Starting with a blank canvas, the Visual Composer user draws the application in Visual Composer Storyboard (workspace), without writing a single line of code. Since no traditional programming skills are needed, business process experts can prototype, design and produce entire applications.
http://help.sap.com/saphelp_nw04/helpdata/en/fd/4a7e40417c6d1de10000000a1550b0/content.htm
https://www.sdn.sap.com/irj/sdn/visualcomposer?rid=/library/uuid/16244247-0a01-0010-3294-d81c21e7e86e
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/cb294d33-0501-0010-17b9-e9c65bc84e57
http://en.wikipedia.org/wiki/Visual_Composer
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1752b737-0401-0010-0ba3-87c3eda8c6ce
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e019d290-0201-0010-f186-8630a949800ac
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/30987099-a74c-2a10-70b5-a2751ce79359
Regards
Sudheer
Similar Messages
-
Possible to call a transaction from a planning book using a macro button?
Hi All,
Is it somehow possible to call a transaction using a macro button in the planning book? Also, the current selection should be passed as input parameters to the transaction.
In my example, I am trying to run the transaction /SAPAPO/MC90 - Release to Supply Network Planning from the Demand Planning Planning Book/Data View. This way if planners need to change forecasts mid month for specific selections, they can easily transfer to SNP without having to go out of interactive planning.
Thank you,
MariaHello Maria,
It's possible to call a transaction from a planning book using a macro button.
What you can do is ..... Create a function module and inside it use the command "Call Transaction Tcode" (ABAPer can do this) to call ur specific transaction. And this module can in turn be called from your macro. Please find the below link which explanis how to call a function module from a macro. Do let me know if you need more information on this.
Calling a function module from APO Macro
Regards,
Siva. -
Calling a transaction code in between the program and use the output
Hi frnds,
i want to call a transaction code in between the program and pass the input .After getting the output, use that output in the programHi Navin,
Why don't you sit with ABAPer he can explain better.
Regards,
HAri. -
Can we record two transactions and use for a Call-transaction BDC?
can we record two transactions and upload data using Call-transaction method in BDC ?IF not why?
Hi Prakash,
Here i used two transactions.
REPORT zra_gl_cr NO STANDARD PAGE HEADING LINE-SIZE 255.
TYPE-POOLS: truxs.
DATA: it_raw TYPE truxs_t_text_data.
DATA:messtab1 LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA:messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_mess OCCURS 0,
l_mstring(480),
msgnr(5),
msgv1(15),
END OF i_mess.
DATA:i_mess1 LIKE i_mess OCCURS 0 WITH HEADER LINE.
DATA: l_mstring(480),l_mstring1(480).
DATA: BEGIN OF it_itab OCCURS 0,
saknr(10), "G/L a/c number.
bukrs(4), "Company Code.
ktoks(4), "G/L a/c group.
xplacct(1), "P&L statement account.
xbilk(1), "Balance sheet account.
txt20_ml(20), "G/L a/c short text.
txt50_ml(50), "G/L a/c long text.
waers(5), "Account currency.
MWSKZ(2),
mitkz(1), "Reconciliation a/c for a/c type.
xopvw(1), "Open item management
xkres(1), "Line item display.
zuawa(3), "Sort Key.
fstag(4), "Field status group.
xintb(1), "Post automatically only.
hbkid(5), "House bank.
hktid(5), "Account id.
vzskz(2), "Interest indicator
END OF it_itab.
DATA: hdate LIKE sy-datum.
Selection Screen *****
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(15) text-103. " FOR FIELD P_FILE1.
SELECTION-SCREEN POSITION 25.
PARAMETERS : p_file1 LIKE rlgrap-filename.
SELECTION-SCREEN END OF LINE.
Initialization *****
INITIALIZATION.
At Selection Screen *****
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
Perform file_selection will help to select the location of the file
PERFORM file_selection.
Start-Of-Selection *****
START-OF-SELECTION.
Perform data_upload will help to upload the data from the flat file
to the internal table.
PERFORM data_upload.
PERFORM open_group.
Peform bdc_upload will help to upload the data from the internal
table into its respective fields.
PERFORM bdc_fspo.
PERFORM bdc_upload.
PERFORM exp_log.
PERFORM close_group.
Perform display_log will prepare a log for the data that has been
uploaded
PERFORM display_log.
End-Of-Selection ****
END-OF-SELECTION.
*& Form file_selection
To select the location of the file
FORM file_selection .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path = 'C:\'
mask = ',.txt,.xls.'
mode = 'O'
title = 'Open a excel file'
IMPORTING
filename = p_file1
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " file_selection
*& Form data_upload
To upload the data from the file location to the internal table.
FORM data_upload .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = p_file1
TABLES
i_tab_converted_data = it_itab
EXCEPTIONS
conversion_failed = 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. " data_upload
*& Form bdc_upload
To upload the data from the internal table into its respective fields.
FORM bdc_upload .
LOOP AT it_itab.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ACC_CRE'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_KEY-SAKNR'.
perform bdc_field using 'GLACCOUNT_SCREEN_KEY-SAKNR'
it_itab-SAKNR.
perform bdc_field using 'GLACCOUNT_SCREEN_KEY-BUKRS'
it_itab-BUKRS.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=2102_GROUP'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-KTOKS.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XPLACCT'
it_itab-XPLACCT.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=2102_BS_PL'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-XBILK'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-KTOKS.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XPLACCT'
it_itab-XPLACCT.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XBILK'
it_itab-XBILK.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ENTER'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-KTOKS.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XBILK'
it_itab-XBILK.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT20_ML'
it_itab-TXT20_ML.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT50_ML'
it_itab-TXT50_ML.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-BILKT'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-BILKT'
it_itab-saknr.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TAB02'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-ktoks.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-TXT20_ML'
it_itab-txt20_ml.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-TXT50_ML'
it_itab-txt50_ml.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-BILKT'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-BILKT'
it_itab-saknr.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=TAB02'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-KTOKS.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-KTOKS.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XBILK'
it_itab-XBILK.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT20_ML'
it_itab-TXT20_ML.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT50_ML'
it_itab-TXT50_ML.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-BILKT'
it_itab-saknr.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ENTER'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-WAERS'
it_itab-waers.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MWSKZ'
it_itab-MWSKZ.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MITKZ'
it_itab-mitkz.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-XOPVW'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XOPVW'
it_itab-XOPVW.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XKRES'
it_itab-XKRES.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
it_itab-ZUAWA.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
it_itab-xplacct.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-XBILK'
it_itab-xbilk.
IF it_itab-xbilk = 'X'.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TAB03'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-WAERS'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-WAERS'
it_itab-waers.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-XOPVW'
it_itab-xopvw.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-MITKZ'
it_itab-mitkz.
ENDIF.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-XKRES'
it_itab-xkres.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
it_itab-zuawa.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-FSTAG'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-FSTAG'
it_itab-fstag.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-XINTB'
it_itab-xintb.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-HBKID'
it_itab-hbkid.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-HKTID'
it_itab-hktid.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-VZSKZ'
it_itab-vzskz.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=TAB03'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-WAERS'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-WAERS'
it_itab-WAERS.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MWSKZ'
it_itab-MWSKZ.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MITKZ'
it_itab-MITKZ.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
it_itab-ZUAWA.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ENTER'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-FSTAG'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
it_itab-FSTAG.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-FSTAG'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
it_itab-FSTAG.
PERFORM bdc_transaction USING 'FS00'.
CALL TRANSACTION 'FS00' USING bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab1.
PERFORM mess1.
REFRESH bdcdata[].
ENDLOOP.
ENDFORM. " bdc_upload
*& Form bdc_fspo
text
FORM bdc_fspo .
LOOP AT it_itab.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ACC_CRE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_KEY-SAKNR'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_KEY-SAKNR'
it_itab-saknr.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_KEY-KTOPL'
'1000'.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=2102_GROUP'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-ktoks.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
it_itab-xplacct.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-XBILK'
it_itab-xbilk.
PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-KTOKS'
it_itab-ktoks.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
it_itab-xplacct.
PERFORM bdc_field USING 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-TXT50_ML'.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-TXT20_ML'
it_itab-txt20_ml.
PERFORM bdc_field USING 'GLACCOUNT_SCREEN_COA-TXT50_ML'
it_itab-txt50_ml.
*perform bdc_transaction using 'FSP0'.
CALL TRANSACTION 'FSP0' USING bdcdata MODE 'A'
UPDATE 'S'
MESSAGES INTO messtab.
PERFORM mess.
REFRESH bdcdata[].
ENDLOOP.
ENDFORM. " bdc_fspo
*& Form mess
text
--> p1 text
<-- p2 text
FORM mess . "fsp0
LOOP AT messtab.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab-msgid
lang = messtab-msgspra
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
IMPORTING
msg = l_mstring
EXCEPTIONS
not_found = 1
OTHERS = 2.
CONDENSE l_mstring.
i_mess1-l_mstring = l_mstring(250).
i_mess1-msgnr = messtab1-msgnr.
i_mess1-msgv1 = messtab1-msgv1.
APPEND i_mess1.
ENDLOOP.
ENDFORM. " mess
*& Form mess1
text
--> p1 text
<-- p2 text
FORM mess1 . "fs00
LOOP AT messtab1.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab1-msgid
lang = messtab1-msgspra
no = messtab1-msgnr
v1 = messtab1-msgv1
v2 = messtab1-msgv2
v3 = messtab1-msgv3
v4 = messtab1-msgv4
IMPORTING
msg = l_mstring1
EXCEPTIONS
not_found = 1
OTHERS = 2.
CONDENSE l_mstring1.
i_mess-l_mstring = l_mstring1(250).
i_mess-msgnr = messtab1-msgnr.
i_mess-msgv1 = messtab1-msgv1.
APPEND i_mess.
ENDLOOP.
ENDFORM. " mess1
*& Form exp_log
text
--> p1 text
<-- p2 text
FORM exp_log .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'c:\temp\error_fsp0.txt'
filetype = 'DAT'
TABLES
data_tab = i_mess1.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'c:\temp\error_fs00.txt'
filetype = 'DAT'
TABLES
data_tab = i_mess.
ENDFORM. " exp_log
*& Form bdc_dynpro
text
-->PROGRAM text
-->DYNPRO text
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_Field
********Rewards some points. -
Error while calling MII transaction as web service from ABAP
Hello Experts,
I want to call a MII transaction from ABAP program, as a web service.
Following is output of http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX (TAG_TRX is name of my transaction).
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.sap.com/xMII" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.sap.com/xMII">
- <!-- Types
-->
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.sap.com/xMII">
- <s:complexType name="InputParams">
- <s:sequence id="InputSequence">
<s:element maxOccurs="1" minOccurs="0" name="WEIGHT" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="BATCHID" type="s:string" />
</s:sequence>
</s:complexType>
- <s:element name="XacuteRequest">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="LoginName" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="LoginPassword" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="InputParams" type="s0:InputParams" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="Rowset">
- <s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Row" type="s0:Row" />
</s:sequence>
<s:attribute name="Message" type="s:string" />
</s:complexType>
- <s:complexType name="Row">
<s:sequence id="RowSequence" />
</s:complexType>
- <s:element name="XacuteResponse">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="Rowset" type="s0:Rowset" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
- <!-- Messages
-->
- <message name="XacuteSoapIn">
<part element="s0:XacuteRequest" name="parameters" />
</message>
- <message name="XacuteSoapOut">
<part element="s0:XacuteResponse" name="parameters" />
</message>
- <!-- Ports
-->
- <portType name="XacuteWSSoap">
- <operation name="Xacute">
<input message="s0:XacuteSoapIn" />
<output message="s0:XacuteSoapOut" />
</operation>
</portType>
- <!-- Bindings
-->
- <binding name="XacuteWSSoap" type="s0:XacuteWSSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="Xacute">
<soap:operation soapAction="http://www.sap.com/xMII" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <!-- Service mapping
-->
- <service name="XacuteWS">
- <port binding="s0:XacuteWSSoap" name="XacuteWSSoap">
<soap:address location="http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX" />
</port>
</service>
</definitions>
Now, when I am using http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX to create a Enterprise Service in SAP (i.e. SE80 transaction-> Create Enterprise Service-> Service Consumer-> URL/HTTP Destination-> URL ... I am getting following error.
Incorrect value: Entity "<<document>>"(5 /93 ). unexpected symbol: '<'
But, whenever I am using the same URL in MII BLS, it does not give any error. It correctly shows all input and output parameters.
Please help me to resolve this issue.
Regards
Neeta.Now, I am able to create the Web Service in SAP and it is now showing the respective class, attribute and methods to execute this web service (web service to call MII transaction).
But when I am calling it from ABAP (a simple Web Dynpro for ABAP method), it is showing me the following error:
Error (id=GET_BUSINESS_SYSTEM_ERROR): An error occurred when determining the business system (LD_ERROR)
Thought this error is coming from ABAP program, but I am sure that this is related to some configuration at SAP level. (Let me inform you that there are two different servers for SAP Web Dynpro ABAP and SAP MII.
Please help.
Thanks in advance. -
Whats the use of having pragma autonomous transaction
Hii All,
The below is the procedure developed by our predecessors.We are making use of this for writing our debug messages.
I'm aware of pragma autonomous transaction ,this allows my code to run independently of the calling program.
But here we are just using utl_File and we are neither using any DML(Inserting error messages into a table) or DDL statements in the below code.
What is real use of having pragma autonomous transaction.???This code is working in the same way even without the pragma...I dont' find any difference .
Please let me know the use of having pragma autonomous transaction in the below procedure and where it actually comes into usage.
Create or replace Procedure logmesg
p_file_name in varchar2,
p_mesg_text in varchar2,
p_dir_path in varchar2 default fn_get_debug_path,
p_file_ext in varchar2 default 'log',
p_append_flag in varchar2 default 'Y'
) Is
pragma autonomous_transaction;
l_utl_file utl_file.file_type;
l_append_flag varchar2(1);
l_mesg_text varchar2(32000);
l_file_name varchar2(3000);
l_dir_path varchar2(32000);
l_delimeter_occurance number;
l_buffer_str varchar2(32000);
Begin
if trim(p_dir_path) is null then
l_dir_path := fn_get_debug_path ;
else
l_dir_path := p_dir_path;
end if;
l_mesg_text := p_mesg_text;
l_append_flag := nvl(p_append_flag,'Y');
l_file_name := p_file_name||'_'||to_char(sysdate,'ddmmyyyyhh')||'.'||p_file_ext;
l_append_flag := Case l_append_flag
When 'Y' then 'a'
When 'N' then 'w'
End;--l_append_flag
Begin
l_utl_file := utl_file.fopen(l_dir_path,l_file_name,l_append_flag);
Exception
When Others Then
l_utl_file := utl_file.fopen(l_dir_path,l_file_name,'w');
End;
if dbms_lob.getlength(l_mesg_text) > 32000 then
loop
exit when dbms_lob.getlength(l_mesg_text) < 32000;
l_delimeter_occurance := dbms_lob.instr(l_mesg_text,chr(32),1,1);
l_buffer_str := dbms_lob.substr(l_mesg_text,l_delimeter_occurance-1);
utl_file.put_line(l_utl_file,l_buffer_str);
l_mesg_text := dbms_lob.substr(l_mesg_text,l_delimeter_occurance+1);
utl_file.fflush(l_utl_file);
end loop;
end if;
utl_file.put_line(l_utl_file,l_mesg_text);
utl_file.fflush(l_utl_file);
utl_file.fclose(l_utl_file);
End logmesg;
/HerePlease let me know the use of having pragma autonomous transaction in the below procedure and where it actually comes into usage.Seems it is redundant in that procedure, and doesn't add any value, since the procedure isn't doing anything 'transactional'.
I would remove it. -
Error while calling MII transaction as web service
Hi all,
I am using MII version 12.1.8
When i try calling a BLS as a web service i am getting an error as " [ERROR] Error Invoking Web Service Action: Status (502): Proxy Error ( No data record is available. ) "
The same WSDLGen url is working from the browser. The path is http://<server>:50000/XMII/WSDLGen/<TrxPath>
I also gave Proxy Host and Proxy Port in System Management --> System Administration
Is there anything i am missing in the web service action.
Kindly help
Regards
MuzammilHi Diana,
It is working now. I removed the proxy settings from system administrator and added a new credential alias for web service. And then it started working..
The scenario which i am trying is as mentioned. We need to call a transaction from a diiferent MII Server. So at first i was trying with the Trx within the same server.
Hope this is the best way to access the transaction from a different server.
Regards
Muzammil -
Calling a transaction and skipping the first screen
Dear forumers,
In my report program, I will need to call a custom transaction with skipping the first screen.
And, this custom transaction is created from a query.
Currently, the codes look like below:-
SET PARAMETER ID: 'BUK' FIELD w_output-bukrs,
'AN1' FIELD w_output-anln1.
CALL TRANSACTION 'ZCUSTQ' AND SKIP FIRST SCREEN.
Everything works perfectly alright except for one thing: The first screen is not skipped. When the custom transaction is called, the first screen is still displayed to the user.
Additionally, I also found out that the "SKIP FIRST SCREEN" does not work because the screen's next screen number is the same. This means the screen 1000's next screen is 1000 as well.
(See notes in italics below)
Does anyone have any ideas on how to resolve this? Please help.
This addition suppresses the display of a screen of the initial dynpro of a called dialog transaction. The addition AND SKIP FIRST SCREEN suppresses the first screen under these prerequisites:
For the initial dynpro, in the Screen Painter the own dynpro number must not be specified as the next screen number.
All mandatory input fields of the initial dynpro must be filled completely and with the correct values by the SPA/GPA parameters
If these prerequisites are met, that screen of the dynpro is displayed that is specified in the Screen Painter as the next dynpro of the initial dynpro.For Any Query , if you want to create the Transaction you need to use the Tcode START_REPORT
in general it will skip the first Transaction codes selection screen , Not your query reports selection screen.
I checked and verfied...
Steps to verify the issue..
1.Go to SE93 ,Now you will go for parametric transaction.
2. give the Transaction as START_REPORT, there you will have option Skip Initial Screen. You uncheck that.
3. Now give all information related to your query.
and see the effect
call TRANSACTION 'YYTCODE AND SKIP FIRST SCREEN.
This will always trying to skip the First transaction's selection/initial screen , Not your Query selection screen.
You also try to check and let me know. -
RRI not working for calling up transaction BI admin cockpit
Hi,
We have implemented BI admin cockpit and all technical contents and settings are OK, but when we try to navigate to call any transaction (Monitor, Process status TCode ST22, RSA1, RSMO, RSPC etc) by calling RRI than instead of getting the desired transaction screen we are getting the SAP Easy Access screen. Although we can navigate to Second level web template thru RRI and if we define target system other that BI (i.e. ECC or CRM) than we are able to navigate any transaction transaction i.e. SE38 or SE37 etc,
Any suggestion or help would be appriciated.
thanks
DevHi Sunny,
as per your reply i have check the BI usage types using that URL.
And the below is the result.
Information about Active Usage Types
Active Usage Types
Product UT Code Short Name Description
NetWeaver BI BI Java BI Java
NetWeaver AS AS Java Application Server Java
NetWeaver DI DI Development Infrastructure
NetWeaver EPC EP Core Enterprise Portal Core Components
NetWeaver EP EP Enterprise Portal
Can you please help.
Thanks
AS -
To Call a transaction from message body of an e-mail sent from SAP
I have requirement to call a transaction (say MM03) when I click on some text ( Like Hyperlink ) in the message body of an email sent by SAP.
Please let me know how it should be done.I dont know whether you can do hyperlink in the mail but i can think of following 2 options:
1) Use Workflow and send it to user and then attach transaction MM03 to that so that when user receives message, he/she can directly open MM03.
2) In report, you can have hyperlink. -
Oracle deadlock - how to use "synchronised" keyword in a transaction?
Hi,
I use WL6.1 SP4, Oracle 8.1.6, with some Java objects which execute a
lot
of SQL queries (mixed update, insert and select) using plain JDBC
calls,
and Weblogic connection pools. These objects are called by servlets.
I experienced recently deadlocks when two users call the object at the
same
time (See error below).
I execute the queries using "synchronized" keyword in the following
way:
synchronized (this)
conConnection.setAutoCommit(false);
executeTransaction(myStatement);
conConnection.commit();
executeTransaction is overriden in sub-classes and is the method which
executes
all the queries.
It calls methods in other objects. These methods are not declared as
synchronized.
1) Should they?
2) Should I use the keyword "synchronized" in another way?
3) This part of code is also called when I do only "select"
statements. I guess
it should only be synchronized when we do "update" and "insert" which
could lead
to a deadlock?
4) Do you have any idea why this deadlock occurs as I use the
"synchronized"
keyword, and one thread should wait until the other one has finished?
Thanks for any idea,
Stéphanie
----------------- error:
<ExecuteThread: '4' for queue: 'default'> <> <> <000000> <SQL request
sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
4 WHERE par.IDPARTICIPANT = 8983566>
<ExecuteThread: '11' for queue: 'default'> <> <> <000000> <SQL request
sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
6 WHERE par.IDPARTICIPANT = 8983570>
ORA-00060: deadlock detected while waiting for resource
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:872)
at weblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.java:89)
at weblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:100)
at bfinance.framework.EDBBLBean.executeSQL(EDBBLBean.java:299)Hi Stepanie,
I'd try to group update statement together. Usually it helps.
Regards,
Slava Imeshev
"Stephanie" <[email protected]> wrote in message
news:[email protected]...
Thanks for your answer.
In the case you describe, is there a way to ensure that tx-2 waits for
tx-1
to be finished before beginning?
My transaction which causes the problem is the following (simplified):
UPDATE tableA SET islast=0 WHERE externalid=myid;
for (int i=0; i< aVector.size(); i++) {
INSERT INTO tableA (id, islast, ranking, externalid) (SELECT
SEQ_tableA.nextval, 1, 0, myid);
UPDATE tableA SET ranking = /*calculated ranking */
WHERE externalid=myid AND islast=1;
UPDATE tableB ....
commit;
tx-1 and tx-2 execute this transaction at the same time. tx-1 begins
The deadlock appears when tx-2 executes the second UPDATE tableA
query.
I don't see how I can avoid to execute these two update queries, so if
I can find another way to prevent deadlock, it would be great!
Stéphanie
Joseph Weinstein <[email protected]_this> wrote in message
news:<[email protected]_this>...
Stephanie wrote:
Hi,
I use WL6.1 SP4, Oracle 8.1.6, with some Java objects which execute a
lot
of SQL queries (mixed update, insert and select) using plain JDBC
calls,
and Weblogic connection pools. These objects are called by servlets.
I experienced recently deadlocks when two users call the object at the
same
time (See error below).Hi. The error you are getting isn't necessarily from a lack ofsynchronization
of your java objects. It has to do with the order in which you accessDBMS
data. You are getting ordinary DBMS deadlocks, which are caused when
two DBMS connections each have a lock the other wants, in order toproceed.
The DBMS will quickly discover this and will kill one transaction inorder to
let the other one proceed:
time 0: tx-1 and tx-2 have started.....
time 1: tx-1: update tableA set val = 1 where key = 'A'
time 2: tx-2: update tableB set val = 2 where key = 'B'
time 3: tx-1: update tableB set val = 1 where key = 'B' (waitsbecause tx-2 has the row
locked)
time 4: tx-2: update tableA set val = 2 where key = 'A' (waitsbecause tx-1 has the row
locked)
This is a deadlock. The solution is to organize your application code sothat every
transaction accesses the data in the same order, eg: update tableAfirst, then update tableB.
This will prevent deadlocks.
Joe Weinstein at BEA
I execute the queries using "synchronized" keyword in the following
way:
synchronized (this)
conConnection.setAutoCommit(false);
executeTransaction(myStatement);
conConnection.commit();
executeTransaction is overriden in sub-classes and is the method which
executes
all the queries.
It calls methods in other objects. These methods are not declared as
synchronized.
1) Should they?
2) Should I use the keyword "synchronized" in another way?
3) This part of code is also called when I do only "select"
statements. I guess
it should only be synchronized when we do "update" and "insert" which
could lead
to a deadlock?
4) Do you have any idea why this deadlock occurs as I use the
"synchronized"
keyword, and one thread should wait until the other one has finished?
Thanks for any idea,
Stéphanie
----------------- error:
<ExecuteThread: '4' for queue: 'default'> <> <> <000000> <SQL request
sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
4 WHERE par.IDPARTICIPANT = 8983566>
<ExecuteThread: '11' for queue: 'default'> <> <> <000000> <SQL request
sent to database: UPDATE PARTICIPANT par SET par.PARTICIPANTLASTRANK =
6 WHERE par.IDPARTICIPANT = 8983570>
ORA-00060: deadlock detected while waiting for resource
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
atoracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
atoracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
atoracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047
atoracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2709)
atoracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
atweblogic.jdbc.pool.Statement.executeUpdate(Statement.java:872)
atweblogic.jdbc.rmi.internal.StatementImpl.executeUpdate(StatementImpl.java:89
atweblogic.jdbc.rmi.SerialStatement.executeUpdate(SerialStatement.java:100)
at bfinance.framework.EDBBLBean.executeSQL(EDBBLBean.java:299) -
RollbackException using UserTransaction when calling EJB in separate server
I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
is running in a separate server. I'm looking up the remote EJB using
JNDI and calling through it's home interface. This works fine but if
the client code begins a UserTransaction, then calls the EJB that's in
the separate server, and then calls commit on the transaction, I get the
following:
weblogic.transaction.RollbackException: Aborting prepare because some
resources could not be assigned - with nested exception:
[javax.transaction.SystemException: Aborting prepare because some
resources could not be assigned]
The code that works looks like:
rgData =
HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
whereas the code that fails is:
UserTransaction transaction = new UserTransaction();
transaction.begin();
rgData =
HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
transaction.commit();
If I put the EJB in the same server as the client, I don't get the
exception so it seems to be related to running it in the separate server
and using the UserTransaction. The deployment descriptor of the EJB
states that it "Supports" transactions.
Any ideas?
Thanks,
John
Yes, actually we are using:
AppServerTransaction transaction = new AppServerTransaction();
which is a wrapper which does what you say:
Context ctx = new InitialContext(...); // connect to another WLS
UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
and our HomeHolder does what you say as well:
Homexxx home = ctx.lookup(...);
Any ideas why surrounding the EJB call by a UserTransaction causes a problem when
committing?
Thanks,
John
Dimitri Rakitine wrote:
> John Hanna <[email protected]> wrote:
> > I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
> > is running in a separate server. I'm looking up the remote EJB using
> > JNDI and calling through it's home interface. This works fine but if
> > the client code begins a UserTransaction, then calls the EJB that's in
> > the separate server, and then calls commit on the transaction, I get the
> > following:
>
> > weblogic.transaction.RollbackException: Aborting prepare because some
> > resources could not be assigned - with nested exception:
> > [javax.transaction.SystemException: Aborting prepare because some
> > resources could not be assigned]
>
> > The code that works looks like:
>
> > rgData =
> > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
>
> > whereas the code that fails is:
>
> > UserTransaction transaction = new UserTransaction();
>
> It's an interface, how did this work? Assuming that you do not want
> distributed tx, does this work:
>
> Context ctx = new InitialContext(...); // connect to another WLS
> UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
> Homexxx home = ctx.lookup(...);
> tx.begin();
> home.create().getResourceOptions(qd);
> tx.commit();
>
> ?
>
> > transaction.begin();
> > rgData =
> > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
> > transaction.commit();
>
> > If I put the EJB in the same server as the client, I don't get the
> > exception so it seems to be related to running it in the separate server
> > and using the UserTransaction. The deployment descriptor of the EJB
> > states that it "Supports" transactions.
>
> > Any ideas?
>
> > Thanks,
>
> > John
>
> --
> Dimitri
-
How to Fill the selection screen while calling the transaction
Hi All,
my requirement is in one of the screen while i will press a push button it will call one transaction and it will fill the selection screen build order number field and skip the first screen i.e the selection screen it will show the output of that report directly.
am using this code .
case sy-ucomm.
while 'FSLR'.
set PARAMETER ID 'ANR' FIELD aufnr.
RANGES s_aufnr FOR afko-aufnr.
s_aufnr-sign = 'I'.
s_aufnr-option = 'EQ'.
s_aufnr-low = aufnr.
APPEND s_aufnr.
CALL TRANSACTION 'ZFS1' USING s_aufnr
MODE 'E' .
AND SKIP FIRST SCREEN.
endcase.
here the problem is i cant use both skip screen and using at a time nither the screen is filling nor its skipping the first screen.
but its not working would any one please help how can i do this functionality?Hi
Do in this way.
DATA: rspar TYPE TABLE OF rsparams WITH HEADER LINE.
rspar-selname = 'S_AUFNR'.
rspar-kind = 'S'.
rspar-sign = 'I'.
rspar-option = 'EQ'.
rspar-low = 'aufnr'.
APPEND rspar.
SUBMIT zfs1_prog VIA SELECTION-SCREEN WITH SELECTION-TABLE rspar AND RETURN.
If this doesnt suit yer requirement, I wud suggest you to use BDC as below.
CALL TRANSACTION 'SE11' USING bdcdata
MODE 'E'
UPDATE 'A'. -
Use of C-calls in file browser
Hello
I have a question pertaining to the use of C-calls in a class that I'm writing. The purpose of the class is to allow a user to browse files on either the current application server or a remote application server. Additionally the browser would be used in a product that our company is shipping to a number of clients so the code needs to be portable between different systems. I'm using the following C-calls: C_SAPGPARAM, C_DIR_READ_START, C_DIR_READ_FINISH and C_DIR_READ_NEXT.
Obviously these functions are fast but their portability to other systems might be an issue. The product would also be up for SAP certification later this year and I have no idea what the impact of the use of these functions would be.
The question that I have is whether there is an alternative way to browse for files on an application server? Basically what it should do is return a list of entries of a directory on the server and indicate whether an entry is a file or directory, it should of course be relatively fast in order to avoid unnecessary delays when browsing directories.
Anyway, help and advice in this regard would be greatly appreciated.
Bye
Ettienne HugoHi,
Statndard Transaction in SAP itself uses the same C-Calls.
For Eg , AL11 uses these C-Calls.
The Function module SUBST_GET_FILE_LIST fetch all the files in a specified folder.But still this too iuses C-Calls
Regards
Immanuel D -
In EP, call R3 transaction with dynamic variant name
Hello
I know that I can call a R3 transaction with a dedicated variant thanks to the process below:
Create a transaction iview , Tcode = "START_REPORT"
In application parameters pass these values separated by '&' sign.
D_SREPOVARI-REPORT - your report
D_SREPOVARI-VARIANT - your saved variant.
choose skip inital screen in the parameters.
But do you have a tip to call a different variant for every user.
For example, I have users "1111" and "2222". In R3 I have created the variant "1111" and "2222" for a transaction.
In EP, I would like that when I call this transaction connected as "1111", the variant "1111" is used, and when I'm logged as "2222", the variant "2222" is used.
Do you know how I can do that ?
Thank you !Hello,
where is the information which user has to call which variant stored? If it's in R/3 then you can write an wrapper report which is called from the Portal, adds the Variant information and then calls the original report.
Regards
Gregor
Maybe you are looking for
-
Regarding cheque printing through FPY1
HI i am narrating the scenario first and is as below. After the payment run program(FPY1) has been executed and approved by the finance dept, the cheque processor executes the payment medium program SAPLFKGV, transaction code FPCH1. this program crea
-
Does anyone know what happened to the iphone app Podcast Pro?
I have been using Podcast Pro for at least a couple of years. About two months ago it quit being able to to update podcasts. None of the other podcast players come close to it in terms of ease of usability and control of downloaded podcasts,
-
I am having problems when placing a link to an .asp page with a query string in it. Here is the link: http://www.destaco.com/new_products.asp?loc=<%=Request.QueryString("loc")%>&lang=<%=Reques t.QueryString("lang")%> The developer I'm working with sa
-
India - Excise Invoice Generation Request--Filter LOV values OU wise
Hi, Does anyone have any experience, on how to filter the delivery ids that appear in 'India - Excise Invoice Generation Program' OU wise. This is a seeded India Localization request. After shipment, user fires this request for generating excise invo
-
HAL 9.2 to update Planning 11.1.1.3
Before anybody says anything..I know, I know, I know. We currently have issues with EPMA and whilst we resolve those issues, we need to update Planning. One option (very very last option) is to use HAL. The only version we have is 9.2. Could we use t