How to pass a structure/array of structure as input parameter in a webservice
Hi Team,
I am trying to create a webservice in powerbuilder .net( pb 12.5.1) . As this webservice will be used by external world to access some of data on basis of some input paarameter.
So can i use array of structure as input parameter to a webservice ? If no, then how can i pass a result set ( mora then 1 row with more than one column)
as an argument to the webservice.
Regards
Subrat
I am assuming this is the same for .Net but in Classic you can create NVO's with Instance Variables and then reference them in the NVO that will be used as the parameter for the Public WebService.
WS NVO's:
Children
String Child[]
Customer
String FirstName
String LastName
String DOB
Children Children
Public Interface uses Customer
Calling Code Example:
integer rc, liNdx
string lsReturn
SoapConnection lSoapConnect
proxy_testing px_Testing
lSoapConnect = CREATE SoapConnection
if IsValid(lSoapConnect) then
TRY
rc = lSoapConnect.CreateInstance(px_Testing, 'proxy_testing')
CHOOSE CASE rc
CASE 100
lsReturn = "Invalid proxy name"
CASE 101
lsReturn = "Failed to create proxy"
CASE 0
Proxy_Customer lNewCustomer
lNewCustomer = CREATE Proxy_Customer
lNewCustomer.FirstName = 'Chris'
lNewCustomer.LastName = 'Craft'
lNewCustomer.DOB = 'Getting Older'
Proxy_Children lChildren
lChildren = CREATE Proxy_Children
lChildren.Child[1] = 'Madeline'
lChildren.Child[2] = 'Hayden'
lNewCustomer.Children = lChildren
lsReturn = px_Testing.NewCustomer(lNewCustomer)
CASE ELSE
lsReturn = "Unknown error (" + String(rc) + ")"
END CHOOSE
if rc <> 0 then MessageBox("Invocation Error", lsReturn, Exclamation!)
CATCH (RuntimeError rte)
rc = -1
MessageBox("Runtime Error", rte.text, Exclamation!)
END TRY
end if
Chris Craft
Similar Messages
-
How to pass a xml CDATA in string element when OSB calling a webservice?
How to pass a xml CDATA in string element when OSB calling a webservice?
I have a business service (biz) that route to operation of a webservice.
A example of request to this webservice legacy:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eg="example">
<soapenv:Header/>
<soapenv:Body>
<ex:execute>
<ex:arg><![CDATA[<searchCustomerByDocumentNumber>
<documentNumber>12345678909</documentNumber>
</searchCustomerByDocumentNumber>]]></ex:arg>
</ex:execute>
</soapenv:Body>
</soapenv:Envelope>
the type of ex:arg is a string.
How to pass this CDATA structure to webservice in OSB?Steps to solve this problem:
1. Create a XML Schema. E.g.:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<xs:complexType name="searchCustomerByDocumentNumber">
<xs:sequence>
<xs:element name="documentNumber" minOccurs="0">
<xs:annotation>
<xs:documentation>
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="searchCustomerByDocumentNumber" type="searchCustomerByDocumentNumber"></xs:element>
</xs:schema>
With this XSD, the XML can be generate:
<?xml version="1.0" encoding="UTF-8"?>
<searchCustomerByDocumentNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="searchCustomerByDocumentNumber.xsd">
<documentNumber>documentNumber</documentNumber>
</searchCustomerByDocumentNumber>
2. Create a XQuery to create a searchCustomerByDocumentNumber ComplexType. E.g.:
(:: pragma bea:global-element-return element="searchCustomerByDocumentNumber" location="searchCustomerByDocumentNumber.xsd" ::)
declare namespace xf = "http://tempuri.org/NovoSia/CreateSearchCustomerByDocumentNumber/";
declare function xf:CreateSearchCustomerByDocumentNumber($documentNumber as xs:string)
as element(searchCustomerByDocumentNumber) {
<searchCustomerByDocumentNumber>
<documentNumber>{ $documentNumber }</documentNumber>
</searchCustomerByDocumentNumber>
declare variable $documentNumber as xs:string external;
xf:CreateSearchCustomerByDocumentNumber($documentNumber)
3. In your stage in pipeline proxy add a assign calling the XQuery created passing the document number of your payload.
Assign to a variable (e.g.: called searchCustomerByDocumentNumberRequest)
4. Create another XQuery Transformation (XQ) to create a request to the webservice legacy. E.g.:
<ex:arg>{fn-bea:serialize($searchCustomerByDocumentNumberRequest)}</ex:arg>
For more information about xquery serialize function:
41.2.6 fn-bea:serialize()
You can use the fn-bea:serialize() function if you need to represent an XML document as a string instead of as an XML element. For example, you may want to exchange an XML document through an EJB interface and the EJB method takes String as argument. The function has the following signature:
fn-bea:serialize($input as item()) as xs:string
Source: http://docs.oracle.com/cd/E14571_01/doc.1111/e15867/xquery.htm -
How to pass select-option filed to Function Module Exporting Parameter
Hi,
How to pass select-option filed to Function Module Exporting Parameter.
ThanksHi,
DATA: BEGIN OF ITAB5_WRK OCCURS 0,
KUNNR TYPE KNKK-KUNNR, "CUSTOMER #
SBGRP TYPE KNKK-SBGRP, "CREDIT REP
KLIMK TYPE KNKK-KLIMK, "CREDIT LIMIT
NAME1 TYPE KNA1-NAME1, "CUSTOMER NAME
SKFOR TYPE KNKK-SKFOR, "TOTAL A/R
AMT1 TYPE KNKK-SKFOR, "CURRENT
AMT2 TYPE KNKK-SKFOR, "01-30
AMT3 TYPE KNKK-SKFOR, "31-60
AMT4 TYPE KNKK-SKFOR, "61-90
AMT5 TYPE KNKK-SKFOR, "91-120
AMT6 TYPE KNKK-SKFOR, "OVR 120
BZIRK TYPE KNVV-BZIRK,
END OF ITAB5_WRK.
SELECT-OPTIONS P_COMP FOR T001-BUKRS
SELECT KUNNR SBGRP FROM KNKK
INTO TABLE ITAB5_WRK
WHERE SBGRP IN P_REP
AND KUNNR GE '0001000000'
AND SKFOR NE 0.
LOOP AT ITAB5_WRK.
DELETE ADJACENT DUPLICATES FROM ITAB5_WRK COMPARING KUNNR.
ENDLOOP.
PERFORM GET_CREDIT_LIMITS.
*=======================================================================
IF P_DIST NE SPACE.
LOOP AT ITAB5_WRK.
SELECT SINGLE * FROM KNVV WHERE KUNNR EQ ITAB5_WRK-KUNNR
AND VKORG EQ P_COMP
AND VTWEG EQ '20'
AND SPART EQ '10'
AND BZIRK IN P_DIST.
IF SY-SUBRC EQ 0.
MOVE KNVV-BZIRK TO ITAB5_WRK-BZIRK.
MODIFY ITAB5_WRK.
ELSE.
DELETE ITAB5_WRK.
ENDIF.
ENDLOOP.
ENDIF.
*==============================================================
LOOP AT ITAB5_WRK.
MOVE: 'F/S' TO WRK-KKBER,
ITAB5_WRK-KUNNR TO WRK-KUNNR.
PERFORM AGING.
ADD: W_SNFAE TO ITAB5_WRK-AMT1,
W_SFAE1 TO ITAB5_WRK-AMT2,
W_SFAE2 TO ITAB5_WRK-AMT3,
W_SFAE3 TO ITAB5_WRK-AMT4,
W_SFAE4 TO ITAB5_WRK-AMT5,
W_SFAE5 TO ITAB5_WRK-AMT6,
W_SFAEL TO ITAB5_WRK-SKFOR,
W_SNFAE TO ITAB5_WRK-SKFOR.
MOVE: 'SPEC' TO WRK-KKBER,
ITAB5_WRK-KUNNR TO WRK-KUNNR.
*PERFORM AGING.*
ADD: W_SNFAE TO ITAB5_WRK-AMT1,
W_SFAE1 TO ITAB5_WRK-AMT2,
W_SFAE2 TO ITAB5_WRK-AMT3,
W_SFAE3 TO ITAB5_WRK-AMT4,
W_SFAE4 TO ITAB5_WRK-AMT5,
W_SFAE5 TO ITAB5_WRK-AMT6,
W_SFAEL TO ITAB5_WRK-SKFOR,
W_SNFAE TO ITAB5_WRK-SKFOR.
MODIFY ITAB5_WRK.
ENDLOOP.
FORM AGING.
*CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'*
EXPORTING
BUKRS = P_COMP
KKBER = WRK-KKBER
KUNNR = WRK-KUNNR
RASID = 'FEND'
KLIMP = 'X'
IMPORTING
SFAE1 = W_SFAE1
SFAE2 = W_SFAE2
SFAE3 = W_SFAE3
SFAE4 = W_SFAE4
SFAE5 = W_SFAE5
SFAE6 = W_SFAE6
SFAEL = W_SFAEL
SNFA1 = W_SNFA1
SNFA2 = W_SNFA2
SNFA3 = W_SNFA3
SNFA4 = W_SNFA4
SNFA5 = W_SNFA5
SNFA6 = W_SNFA6
SNFAE = W_SNFAE
EXCEPTIONS
NO-AGING_SCHEDULE = 1
NO_TABLE_INPUT = 2.
CASE SY-SUBRC.
WHEN 1.
MESSAGE E999 WITH 'PLEASE ENTER AGING SCHEDULE'.
WHEN 2.
MESSAGE E999 WITH 'DO NOTHING ??'.
ENDCASE.
ENDFORM. "AGING
Thanks -
How to pass a single character to dll (as a parameter)
How do pass a single character to dll (as a parameter). This is a third party dll that i am unable to change.
e.g.: int functionName(char* process, char myChar);My apoligies, I am trying to pass a char from Teststand. Passing as a char is not one of the Category
I tried sending (for example) : Locals.myChar[0]. Which is acceptable in C++, but gives me an error via Teststand. -
How to pass the JCO Table and Structure in a collection List to frontEnd
hi,
I have a BAPI which is returns me a Table and a structure. As i have used JCO I will receive it in JCO Table and JCO Structure. Now the question is that how I should pass both these of these using a collection to the frontend for displaying the data from it.
Thanks' & Regards,
SamirHi Samir,
As you are trying to pass the Table and the Structure in the form of collection to the JSP page, you can create a javabean with the structure similar to that of the table/Structure.
Lets assume you have a table called Employee with Emp_Name, Emp_Age, Emp_Sal as three columns, create a java class by name Employee which implements Serializable and attributes as Emp_Name, Emp_Age and Emp_Sal. Generate the setters and getters for the same. In your EJB code, create an instance of this Employee class and set the attributes and save it in a HashMap in the form of key value pair, Value being your Employee class instance and key be your Employee Name. Return the HashMap in your EJB code.
Use the HashMap in your JSP. Get the Iterator for the HashMap and Loop through the keys to get the values.
Hope this helps.
Regards,
Rekha Malavathu -
How to pass value in array to another procedure?
Hello.
I have created application by Developer form9i.
And I have some problem about passing value in array to another procedure.
My code is :
PROCEDURE p_add_array (col_no in number,
col_val in varchar2) IS
type xrecord is record(col number,vcol varchar2(1000));
xrec xrecord;
type varraytype is varying array(42) of xrecord;
xvartab varraytype := varraytype();
alert number;
BEGIN
set_application_property(cursor_style,'busy');
xrec.col := col_no;
xrec.vcol := col_val;
xvartab.extend(1);
xvartab(col) := xrec;
EXCEPTION
when others then
set_application_property(cursor_style,'default');
alert := f_show_alert('!Error ORA-'||
to_char(DBMS_ERROR_CODE)||' '||
substr(DBMS_ERROR_TEXT,1,240),
'al_stop');
END;
And I want to have
PROCEDURE p_print_arrey is
BEGIN
END;
So how to bring value of xvartab( ) in p_add_array to use in p_print_array?
Anybody please help me solve this ploblem.Hi,
Instead of declaring the array locally within the procedure (i.e. p_add_array), define it in the package specification (i.e. Under Program Units).
-- Shailender Mehta -- -
How to pass a multidimensional array to an Oracle procedure?
How can I pass a multidimensional array to oracle array?
Thanx in anticipation,Look in to passing user defined type back and forth to Oracle. Any type that oracle supports, you can constract on the java side and send it across. Look into the SQLData class.
-
How tp pass javascript variables/arrays to a servlet?
Plz help me in passing javascript variables/arrays to a servlet
Hi,
I am creating table rows & columns containg text fields dynamically as follows:
function addRowToTable()
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
// if there's no header row in the table, then iteration = lastRow + 1
var iteration = lastRow;
var row = tbl.insertRow(lastRow);
// right cell
var cellRight = row.insertCell(0);
var el = document.createElement('input');
el.type = 'text';
el.name = 'txtRow' + iteration;
el.id = 'txtRow' + iteration;
el.size = 20;
cellRight.appendChild(el);
Now i am calling function addRowToTable() from jsp page as + key is pressed to add rows dynamically.
So as per rows different textfields are also getting created dynamically with different id & name.
Now i am getting session attributes containing the values for textfields from servlet.
but i am not able to map the values for dynamic textfields getting created?
I want to print values in appropriate fields.
Plz help me. -
Dynamic structure creating based on the input parameter
Hi all,
How to create a dynamic structure based on the input parameter given in the selection screen. I have a file path given and it contains three fields in common, but after that depending upon the input given the fields get changed. For example, i have 0002 infotype given in the selection screen, my file path structure should contain pernr begda endda and PS0002 structure, if the infotype is changed the PS structure has to be changed dynamcially.
Thank you,
Usha.Ans
-
How to pass the out put of ListFiles as input to SynchronousRead FileAdaptor in Oracle SOA
Hi All,
I have list of XML Files in one folder, i want to read all the files one by one ,
i can use the ListFiles to get all the files, i want pass each files at a time as input to SynchronousRead.
i know how to pass the file names dynamically to SynchronousRead File Adaptor, but i dont know how to handle the file list, and passing one at a time from the list
Any help please,Thanks for your reply PuneetRekhade,
i could not see ant for each activity in the Bepel activities,but in transformation i could make use of for-each do display the all the filenames,
i have used while , with following condition number(bpws:getVariableData('Invoke1_FileListing_OutputVariable','filelist','/ns1:filelist/@size'))>=number(bpws:getVariableData('count_Files')),
and in side the while loop , created assign activity which gives assign one file name at a time by acessing the list index.
bpws:getVariableData('Invoke1_FileListing_OutputVariable','filelist',"/ns1:filelist/ns1:file[bpws:getVariableData('count_Files')]/ns1:filename")
i have incremented count variable at the end of the loop. -
Hi,
I want to pass multiple query string values using the same parameter in Query String (URL) Filter Web Part like mentioned below:
http://server/pages/Default.aspx?Title=Arup&Title=Ratan
But it always return those items whose "Title" value is "Arup". It is not returned any items whose "Title" is "Ratan".
I have followed the
http://office.microsoft.com/en-us/sharepointserver/HA102509991033.aspx#1
Please suggest me.
Thanks | Arup
THanks! Arup R(MCTS)
SucCeSS DoEs NOT MatTer.Hi DH, sorry for not being clear.
It works when I create the connection from that web part that you want to be connected with the Query String Filter Web part. So let's say you created a web part page. Then you could connect a parameterized Excel Workbook to an Excel Web Access Web Part
(or a Performance Point Dashboard etc.) and you insert it into your page and add
a Query String Filter Web Part . Then you can connect them by editing the Query String Filter Web Part but also by editing the Excel Web Access Web Part. And only when I created from the latter it worked
with multiple values for one parameter. If you have any more questions let me know. See you, Ingo -
How to change the image dynamically depend upon the input parameter
Hi All
I have one report running depend upon the Organization specific, I have 15 operating unit and 15 different logo for each operating unit.
How to change the Logo dynamically depend upon the input passed by the user.
If I have three or four logo i can add in my layout using if else statement and its works fine but i have more that 10 logos so its no possible to keep these in My RTF Template.
Is it possible to change the logo according to the input without keeping this in Template.
I have seen this link but its not working fine
http://erpschools.com/articles/display-and-change-images-dynamically-in-xml-publisher
Regards
Srikkanth.MHi,
I have not completed fully,so sorry i cant able to share the files, could you please give me some tips and steps to do.
Without having the logo in RTF if it possible to bring the logo depends on the user input (Ie Operating unit).
Regards
Srikkanth -
How can i dynamically select columns based on the input parameter?
I have an input parameter which takes single numeric value.
Based on this value i have to dynamically select table-columns .
For eg: if i have following fields in my table :
SEM_1
SEM_2
SEM_3 and SEM_4.
And if i give numeric input as 2 , then i have to select "SEM_2" column only.
if the input is 3 then i have to select "SEM_3" only and leave the rest of the columns.
how do i achieve this dynamic feature in the "Select ..... From...... table...." statement in the ABAP??Hi,
you should try something like this.
TYPES: cond(72) TYPE c.
data: condtab TYPE TABLE OF cond,
condw type cond.
data: lv_field(30) type c value 'SEM_'.
write p_num to lv_field+4(1).
condw = lv_field.
append condw to condtab.
SELECT (CONDTAB) FROM table INTO.....
Kostas
Message was edited by:
Kostas Tsioubris -
How to pass table to in a method as a parameter
Hi
I need to pass one table in one method to another method as a parameter.
ex: it_tab type zvalue(DDIC).
send_mail( it_tab)like this i need to pass. How to do this.
Please help me.
Thanks & Regards
SUNHello,
You'll need a table category that has the same structure of your internal table. Suppose you need to pass an internal table of type SCARR: you'll actually pass a parameter of type SCARR_TAB (look for it into tcode SE11).
Remember that in a OOP scope, you cannot have header line in your internal tables.
Regards,
Andre -
How to pass an internal table(AbstractList type) as input to RFC??
Hi,
I need to call an RFC which accepts a internal table as input(of AbstractList type as input). Please tell me the best and easy way of passing this as input.
internal table name : Li_mailer
type structure : Solisti1
Please help me in this.
Regards,
NarahariHi Narahari,
I assume you have already populated your table in WebDynpro.
Your code should be like this
<ModelNode>_Input input = new <ModelNode>_Input();
int nodeSize = wdContext.node<Li_mailer>().size();
for(int index=0; index<nodeSize; index++){
Solisti1 w_solist = new Solisti1();
WDCopyService.copyCorresponding(wdContext.node<Li_mailer>().get<Li_mailer>()ElementAt(index), w_solist);
input.add<Li_mailer>(w_solist);
try{
input.execute;
wdContext.<ModelNode>_Input.bind(input);
wdContext.nodeOutput().invalidate();
catch (WDDynamicRFCExecuteException ex){
This will work.
Regards,
Shubham
Maybe you are looking for
-
Whenever I close Firefox and then reopen it later on it opens the last webpage I had open before closing the browser instead of my homepage. It seems that exiting Firefox doesn't fully shut it down and just puts it into hibernation mode. This has bec
-
Runtime error: CX_SHM_OUT_OF_MEMORY
Hello Experts, I have opened one program in SE38 in Quality system which contains so many routines.I need to check the source code of a routine say ZTEST. For that i have double clicked on the name of routine(eg. Perform ZTEST).But am getting below
-
Exit or Badi for FB01 to update KMNAM filed value to BKPF free field
Hi Experts, Please provide me the correct Exits or Badi for to update KMKPF-KMNAM value to BKPF reference field while posting FB01. I tired with substitution but it was not solved my requirement. I have to update the KMNAM value into BKPF-XREF2 field
-
Looking For Guidance: Best Practices for Source Control of Database Assets
Database Version: 11.2.0.3 OS: RHEL 6.2 Source Control: subversion This is a general question aimed at database professionals, however, it is not specific to any oracle version, etc. Its a leadership question for other Oracle shops regarding source
-
Office Online 365 installed today January 20 on brand new HP Envy. Get the above message when loading Excel applications with code and when running code. Will greatly appreciate help. Applications run well on other computers.