FM: PROCESS_HU_INBOUND_DLVRY - wrong length of input parameters
Hello,
I am trying to pack materials into Handling Units in inbound delivery. Therefore i am using the Function Module PROCESS_HU_INBOUND_DLVRY, but it doesnu2019t work like it should.
After some further investigation and debugging of the function module i came to the conclusion that the Import parameters, stated bellow are of wrong file type / length:
u2022 I_SAVE_STEP TYPE C
u2022 I_PACKING_ACTIVITY TYPE C
u2022 I_PACK_TYPE TYPE C
Please see the picture bellow:
[pic1|https://photos-1.dropbox.com/i/o/rxYQUhHzQaBUWNTUAmo8WMQHWXCD8oOeBSg4TOqFHBc/204699/1317888000/9aef875/01.png]
Some further technical info:
u2022 When the function module is called the input parameters are compared to the constants, declared in the Include: RLMOBDDL, please see pictures bellow
[pic2|https://photos-2.dropbox.com/i/o/LIKxPZdNN8jSf18uM8SkNN5BAjomb0MG8mNOID3xeCE/204699/1317888000/c94cd10/02.png]
u2022 The FM is called with the input parameters:
o I_SAVE_STEP = ITEM
o I_PACKING _ACTIVITY = PACK
o I_PACK_TYPE = MAT
u2022 Input parameters are of the type C u2013 the default length is only ONE. Because of that the input parameters are trimmed down to length 1, so the FM actually works with wrong values:
o I_SAVE_STEP = I
o I_PACKING _ACTIVITY = P
o I_PACK_TYPE = M
u2022 The wrong values are then compared to the constants which are length 2, 3 and 4, as shown in the picture bellow.
[pic3|https://photos-3.dropbox.com/i/o/-LMF6MJiG_rFhZ4p9bxldorpUo-aVX_HjRU2RnMxsro/204699/1317888000/e5c2f1b/03.png]
So the FM PROCESS_HU_INBOUND_DLVRY does actually nothing, because the comparing of the input parameters with CONSTANTS fails.
Thanks in advance.
Kind regards,
M
Hi Marko,
call the fm in test mode (F8) and you will see, that these parameters are not of type C(1) but C without limited length. You can call it with varaiable parameter length for these parameters.
Regards,
Klaus
Similar Messages
-
Calling report from a form with user input parameters
Hello,
I am new to Oracle reports. I have an application coded in 6i. I am currently running the application in Oracle Forms Builder 9i. There are also few reports which are called from the forms. Since the application was developed in 6i, the report was called using Run_Product. The forms pass a set of user parameters to the report using the parameter list pl_id. The syntax used was Run_Product(REPORTS, 'D:\Report\sales.rdf', SYNCHRONOUS, RUNTIME,FILESYSTEM, pl_id, NULL);
I learnt that the Run_product doesnt work in 9i and we need to use run_report_object. I have changed the code to use run_report_object and using web.show_document () i am able to run the report from the form. There are 2 parameters that need to be passed from forms to reports. The parameters are from_date and to_date which the user will be prompted to enter on running the form. In the report, the initial values for these parametes are defined. So, the report runs fine for the initial value always. But when i try to change the user inputs for the form_date and to_date, the report output doesnt seem to take the new values, instead the old report with the initial values(defined in the report) runs again.
Can someone give me the code to pass the user defined parameters to the report from the forms? I have defined a report object in the forms node as REPTEST and defined a parameter list pl_id and added form_date and to_date to pl_id and used the following coding:
vrepid := FIND_REPORT_OBJECT ('REPTEST');
vrep := RUN_REPORT_OBJECT (vrepid,pl_id);
But this doesnt work.
Also, Should the parameters defined in the forms and reports have the same name?Thanks for the quick response Denis.
I had referred to the document link before and tried using the RUN_REPORT_OBJECT_PROC procedure and ENCODE functions as given in the doc and added the following SET_REPORT_OBJECT_PROPERTY in the RUN_REPORT_OBJECT_PROC :
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,' FROM_DATE='||:BLK_INPUT.FROM_DATE||' TO_DATE='||:BLK_INPUT.TO_DATE||' paramform=no');
But this also dint work. Please help me understand what difference does setting paramform=no OR paramform=yes make?
In the report, i have defined the user parameters as FROM_DATE and TO_DATE respectively so that they match the form datablock BLK_INPUT items FROM_DATE and TO_DATE.
My WHEN_BUTTON_PRESSED trigger is as below:
DECLARE
report_id report_object;
vrep VARCHAR2 (100);
v_show_document VARCHAR2 (2000) := '/reports/rwservlet?';
v_connect VARCHAR2 (30) := '&userid=scott/tiger@oracle';
v_report_server VARCHAR2 (30) := 'repserver90';
BEGIN
report_id:= find_report_object('REPTEST');
-- Call the generic PL/SQL procedure to run the Reports
RUN_REPORT_OBJECT_PROC( report_id,'repserver90','PDF',CACHE,'D:\Report\sales.rdf','paramform=no','/reports/rwservlet');
END;
... and the SET_REPORT_OBJECT_PROPERTY code in the RUN_REPORT_OBJECT_PROC procedure is as:
PROCEDURE RUN_REPORT_OBJECT_PROC(
report_id REPORT_OBJECT,
report_server_name VARCHAR2,
report_format VARCHAR2,
report_destype_name NUMBER,
report_file_name VARCHAR2,
report_otherparam VARCHAR2,
reports_servlet VARCHAR2) IS
report_message VARCHAR2(100) :='';
rep_status VARCHAR2(100) :='';
vjob_id VARCHAR2(4000) :='';
hidden_action VARCHAR2(2000) :='';
v_report_other VARCHAR2(4000) :='';
i number (5);
c char;
c_old char;
c_new char;
BEGIN
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,report_file_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,report_server_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,report_destype_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,report_format);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,' FROM_DATE='||:BLK_INPUT.FROM_DATE||' TO_DATE='||:BLK_INPUT.TO_DATE||' paramform=no');
hidden_action := hidden_action ||'&report='||GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME);
hidden_action := hidden_action||'&destype='||GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE);
hidden_action := hidden_action||'&desformat='||GET_REPORT_OBJECT_PROPERTY (report_id,REPORT_DESFORMAT);
hidden_action := hidden_action ||'&userid='||get_application_property(username)||'/'||get_application_property(password)||'@'||get_application_property(connect_string);
c_old :='@';
FOR i IN 1..LENGTH(report_otherparam) LOOP
c_new:= substr(report_otherparam,i,1);
IF (c_new =' ') THEN
c:='&';
ELSE
c:= c_new;
END IF;
-- eliminate multiple blanks
IF (c_old =' ' and c_new = ' ') THEN
null;
ELSE
v_report_other := v_report_other||c;
END IF;
c_old := c_new;
END LOOP;
hidden_action := hidden_action ||'&'|| v_report_other;
hidden_action := reports_servlet||'?_hidden_server='||report_server_name|| encode(hidden_action);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,'pfaction='||hidden_action||' '||report_otherparam);
-- run Reports
report_message := run_report_object(report_id);
rep_status := report_object_status(report_message);
IF rep_status='FINISHED' THEN
vjob_id :=substr(report_message,length(report_server_name)+2,length(report_message));
message('job id is'||vjob_id);pause;
WEB.SHOW_DOCUMENT(reports_servlet||'/getjobid'||vjob_id||'?server='||report_server_name,' _blank');
ELSE
--handle errors
null;
END IF;
In the code - " hidden_action := hidden_action ||'&'|| v_report_other; " in the RUN_REPORT_OBJECT_PROC procedure above, how do i make sure that the v_report_other variable reflects the user input parameters FROM_DATE and TO_DATE ??? v_report_other is initialised as v_report_other VARCHAR2(4000) :=''; in the procedure. Will ensuring that the v_report_other contains the user input parameters FROM_DATE and TO_DATE ensure that my report will run fine for the input parameters?
Thanks in advance.
Edited by: user10713842 on Apr 7, 2009 6:05 AM -
Can I validate input parameters and throw a message to user that parameters are invalid?
Post Author: ak004
CA Forum: General
Hi,
I have a report that accepts input parameters. Can I do a front end validation for these parameters and throw a message to the user that the parameters are invalid? Will this work fin if I deply it in infoview?
ThanksI think I posted this on the wrong forum, I will repost this in the proper forum
-
Duplicating Data Sets depending on input parameters
I originally posted this question as part of Oracle Reports but I think its not really an Oracle Report issue, its more an SQL Issue. I am on Oracle 9i.
I need to generate a Report that is based on a maximum of 6 input parameters.
Three of them belong to Customer ID# and 3 belong to Number of Copies that need to be printed on the Report.
Parameters for Customers: P_CUST_ID1, P_CUST_ID2, P_CUST_ID3
Parameters for the Number of Copies: P_N1, P_N2, P_N3
So, at any given point, there could be a maximum of 3 Customer ID's passed to the main query. Here is an example of what the input parameters could look like.
User chose to enter values for Customer ID's 1 and 2 and left it blank for Customer 3.
Customer ID1 1001 Number of Copies 2
Customer ID2 1002 Number of Copies 3
Customer ID3 ---- Number of Copies -The Query that retrieves data looks something like this. The query below is intended to fetch Customer Home and Office Addresses.
Of course, it is possible that there might be No home or Office Address or both.
SELECT c.cust_no,
c.saln||c.first_name||' '||c.last_name cust_name,
a.address_type,
a.street,
a.city||' '||a.province||' '||a.postal_code city,
'('||a.tel_area||') '||a.tel_number telephone
FROM customer c, customer_address a
WHERE c.cust_no = a.cust_no
AND c.cust_no IN (:P_CUST_ID1, :P_CUST_ID2, :P_CUST_ID3);Based on my query:
Customer ID 1001 has 3 Addresses (2 Home and 1 Office) --> Total number of Records = 3
Customer ID 1002 has 2 Addresses (1 Home and 1 Office) --> Total number of Records = 2
The output should be something like this. I have put a Label Copy1, Copy2 and Copy3 to show
how the data will appear for readability.
Cust No Customer Name Address Type Address Line 1 Address Line 2 Telephone
Copy1
1001 Mr Robert Green H 2100 Picket Fences Vancouver BC V6E 2C9 (604)726-5555
1001 Mr Robert Green H 2300 Happy Valley Vancouver BC V6G 2N8 (604)308-5555
1001 Mr Robert Green O 1200 Davie Street Vancouver BC V1V 1X1 (604)211-5555
Copy2
1001 Mr Robert Green H 2100 Picket Fences Vancouver BC V6E 2C9 (604)726-5555
1001 Mr Robert Green H 2300 Happy Valley Vancouver BC V6G 2N8 (604)308-5555
1001 Mr Robert Green O 1200 Davie Street Vancouver BC V1V 1X1 (604)211-5555
Copy1
1002 Ms Cynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416)432-5555
1002 Ms Cynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416)321-5555
Copy2
1002 Ms Cynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416)432-5555
1002 Ms Cynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416)321-5555
Copy3
1002 Ms Cynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416)432-5555
1002 Ms Cynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416)321-5555Scripts for the table creation and INSERTs
CREATE TABLE CUSTOMER
"CUST_NO" VARCHAR2(4 BYTE) NOT NULL,
"SALN" VARCHAR2(4 BYTE),
"FIRST_NAME" VARCHAR2(20 BYTE),
"LAST_NAME" VARCHAR2(20 BYTE),
CONSTRAINT "CUSTOMER_PK" PRIMARY KEY ("CUST_NO")
Insert into CUSTOMER values ('1001','Mr','Robert','Green');
Insert into CUSTOMER values ('1002','Ms','Cynthia','Brown');
Insert into CUSTOMER values ('1003','Dr','David','Taylor');
CREATE TABLE CUSTOMER_ADDRESS
"CUST_NO" VARCHAR2(4 BYTE) NOT NULL ENABLE,
"ADDRESS_TYPE" VARCHAR2(1 BYTE) NOT NULL ENABLE,
"STREET" VARCHAR2(20 BYTE),
"CITY" VARCHAR2(20 BYTE),
"PROVINCE" VARCHAR2(2 BYTE),
"POSTAL_CODE" VARCHAR2(10 BYTE),
"TEL_AREA" VARCHAR2(3 BYTE),
"TEL_NUMBER" VARCHAR2(10 BYTE)
Insert into CUSTOMER_ADDRESS values ('1001','H','2100 Picket Fences','Vancouver','BC','V6E 2C9','604','726-5555');
Insert into CUSTOMER_ADDRESS values ('1001','H','2300 Happy Valley','Vancouver','BC','V6G 2N8','604','308-5555');
Insert into CUSTOMER_ADDRESS values ('1001','O','1200 Davie Street','Vancouver','BC','V1V 1X1','604','211-5555');
Insert into CUSTOMER_ADDRESS values ('1002','H','261 King Street W','Calgary','AB','M5A 1N1','416','432-5555');
Insert into CUSTOMER_ADDRESS values ('1002','O','150 Bloor St W','Calgary','AB','M1W 1S3','416','321-5555');
Insert into CUSTOMER_ADDRESS values ('1003','O','435 Richmond Street','Calgary','AB','M5A 4T6','416','453-5555');Any help or pointers in this regard would be great.
I could have adopted a procedure to use Temporary tables but I really would prefer not going in that direction as there could be quite a few reports that need to be generated in this manner.
Thanks and have a great weekend.Hi,
Roxyrollers wrote:
Hi Frank,
Here is my piece of code that I was working on Friday... Okay, but what's wrong with the solution I posted on Saturday?
WITH report_parameters AS
SELECT :p_cust_no_1 AS cust_no, :p_no_copies_1 AS no_copies FROM dual UNION ALL
SELECT :p_cust_no_2 AS cust_no, :p_no_copies_2 AS no_copies FROM dual UNION ALL
SELECT :p_cust_no_3 AS cust_no, :p_no_copies_3 AS no_copies FROM dual
, cntr AS
SELECT LEVEL AS n
FROM (
SELECT MAX (no_copies) AS max_no_copies
FROM report_parameters
CONNECT BY LEVEL <= max_no_copies
SELECT c.cust_no,
c.saln||c.first_name||' '||c.last_name cust_name,
a.address_type,
a.street,
a.city||' '||a.province||' '||a.postal_code city,
'('||a.tel_area||') '||a.tel_number telephone
, t.n -- If wanted
FROM customer c
, customer_address a
, report_parameters p
, cntr t
WHERE c.cust_no = a.cust_no
AND c.cust_no = p.cust_no
AND p.no_copies >= t.n
ORDER BY c.cust_no
, t.n
, a.address_type
;Output, given your sample data and parameters:
CUST CUST_NAME A STREET CITY TELEPHONE N
1001 MrRobert Green H 2100 Picket Fences Vancouver BC V6E 2C9 (604) 726-5555 1
1001 MrRobert Green H 2300 Happy Valley Vancouver BC V6G 2N8 (604) 308-5555 1
1001 MrRobert Green O 1200 Davie Street Vancouver BC V1V 1X1 (604) 211-5555 1
1001 MrRobert Green H 2100 Picket Fences Vancouver BC V6E 2C9 (604) 726-5555 2
1001 MrRobert Green H 2300 Happy Valley Vancouver BC V6G 2N8 (604) 308-5555 2
1001 MrRobert Green O 1200 Davie Street Vancouver BC V1V 1X1 (604) 211-5555 2
1002 MsCynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416) 432-5555 1
1002 MsCynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416) 321-5555 1
1002 MsCynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416) 432-5555 2
1002 MsCynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416) 321-5555 2
1002 MsCynthia Brown H 261 King Street W Calgary AB M5A 1N1 (416) 432-5555 3
1002 MsCynthia Brown O 150 Bloor St W Calgary AB M1W 1S3 (416) 321-5555 3 WITH DOES work in Oracle 9.1, and higher. Are you getting an error message that starts with "SP"? Those are SQL*Plus errors, that occur before your code is even sent to the database. In extremely old versions of SQL*Plus, a statement cannont begin with the keyword WITH. The best solution is to upgrade SQL*Plus, but you could also re-wqrite the query so WITH is not the first word of the statement. In this case, you could also use in-line views instead of WITH.
I tried to generate duplicate data sets as a Sub-Query like RP suggested and it seems to be working except the ordering seems to be messed up for Mr Robert Green. The correct order should have been Home, Home, Office and then Home, Home, Office again...The order above seems to be what you want, but there are many different reasons why a small set of sample data might just happen to appear in the right order.
Explain why you want that order. If you can say what you want in English, somebody can help you code it in SQL.
I don't recommend any solution that uses UNION. It will be inefficient, and difficult to debug and to maintain. -
Questions on CDS Views with input parameters
Dear Experts,
1. Can we call a CDS View (or generated database view) with input parameters inside an AMDP? I am looking for something similar to the feature in HANA where we can consume calculation view with filters inside SQL Script?
2. I understand we can next CDS Views, but how we can next (call) a CDS View with input parameters inside another CDS View?
Thanks,
GiriHi Thomas,
I get the below error that the CDS View's generated table function cannot take field from AMDP.
I have a requirement to query the CDS View using 2 timestamps (start & end). So, in AMDP I have used the TIME_STAMP and try to pass it to the CDS View
View code:
define view Z_Ngi_Cag_A
with parameters start_ts:abap.dec( 15, 0 ) , end_ts:abap.dec( 15, 0 )
as select from table {
resource_key
where
(begtstmp > $parameters.start_ts or endtstmp > $parameters.start_ts )
and
(begtstmp < $parameters.end_ts or endtstmp < $parameters.end_ts )
I am calling using the below AMDP:
DECLARE iv_start_date TIMESTAMP;
DECLARE iv_end_date TIMESTAMP;
SELECT CURRENT_TIMESTAMP INTO iv_start_date from dummy;
SELECT ADD_DAYS(CURRENT_TIMESTAMP, 30) INTO iv_end_date from dummy;
et_data = SELECT * FROM ZMR_H_CA ( start_ts => iv_start_date, end_ts => iv_end_date );
What could be wrong ? Is this not supported?
Thanks,
Giri -
Calculated view with input parameters
Hello there.
I've created a calculated view with input parameters, which I am going to call it 'VIEW_A'.
This view has been working just fine.
But now I have to create another calculated view and import the last one(VIEW_A) in a projection.
But I got a error when trying to see the data content.
It says :
Error: SAP DBTech JDBC: [2048]: column store error: search table error: [6968] Evaluator: syntax error in expression string;expected TK_ID,parsing '"DT_DOC_MES_ANO" >= [here]and "DT_DOC_MES_ANO" <='
At the 'Problems' panel it says the all the input parameters are unmapped.
What Am I doing wrong? Sorry but I am kind new at SAP world.http://scn.sap.com/message/15489475Hello Tiago,
Could you please let me know if you're able to resolve your issue, I'm getting the similar error when I'm passing alpha numeric values as parameter via my SP.
Thanks for your help in advance!
Regards,
Sathish -
Variant Input Parameters with ActiveX Objects
I've created an ActiveX library that exports a variety of objects using Visual C++ Version 6.0. I'm testing the methods and properties of these objects using both LabVIEW and Visual Basic clients. The problem I'm facing is that when testing under LabVIEW, I can't access methods that expect a VARIANT input parameter. The declaration in C++ of one object's such method looks like this:
void CChassis::Configure (VARIANT config, int rate);
I can create the ActiveX object with both LabVIEW and Visual Basic. I can invoke methods that do not use VARIANT input parameters using both as well; but, when I create a second ActiveX Object (a CConfiguration) and use the LabVIEW Variant operator, my attempt to invoke Configure fails with a "No Such Interface (E_NOINTERFACE)" error. The invocation fails identically if I wire the CConfiguration directly to the Variant input, as well. If I instead create a constant VARIANT as an input parameter, my Configure method gets called, although the method recognizes that I passed an invalid object.
Using Visual Basic I can invoke the Configure method without problems while encapsulating a CConfiguration object within a Variant.
So my question is, have I found a LabVIEW error, or is my approach flawed? If my approach is flawed, where have I gone wrong? Thanks in advance! I'm using LabVIEW version 7.0.Hi,
Have you tried to put in plain data or an object reference into your variant parameter?
I think plain data should work... for object references i don't know.
Some time ago, i also coded a small activex library, where i passed object references by parameters in delphi. I did not use variant parameters, but the real interfacedeclaration types (like IMyObject**). This worked fine. I also uses "dual" interfaces for the objects, which get passed by parameter. But i don't really know if this is helpfull for vb.
Finally, you can also use a workaround:
For each of your Objects, that you want to use from LabView and which you want to pass by a parameter, you
insert an new Property "int32 Object_Handle".
When an Object gets created, it ask a "ObjectHandleManager" (gets written by you) to get an own unique Object_Handle which it stores into its property "Object_Handle".
The ObjectHandleManager generates an new Object Handle and memorizes the Handle assoziated with the calling object's reference.
Now, at each time, when you want to pass a object reference to a library function of your self, you can pass the Object_handle as an integer value. In the called function, you can ask your ObjectHandleManager for the real ObjectReference.
But thats not a very comfortable workaround. -
Strange behaviour when passing many input parameters to web service
Hello!!!
I developed a web service with 52 input parameters using tomcat+axis!
While testing it in my development enviroment everything was working fine
(LAN consisted of three windows 2000 server machines!!!)
When i deployed it in my customer enviroment (VPN with 200 isdn connections) i get a very strange error:
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (0)null
faultActor:
faultNode:
faultDetail:
{}string: return code: 0
(0)null
when i used tcptracer in order to understand what is going on,
I realised that the error occurs when the http request is more than 1350 bytes.
Can someone explain this behaviour?
thanks in advance!
sarantosHi Sarantos,
I think, there is nothing wrong in the axis engine nor the http request limits as you said. I tried the same passing a 60 kb String as an argument to an operation , getting the results perfectly.
So problem could be with the method capacity size of your implementation. (I think default it is 64kb)
bye
Charlie -
Can XMLBeans validate Web Services Input Parameters in Weblogic8.1?
Hi,
I am very new to XMLBeans and Web Services. From my understanding, schemas can be used to validate an xml document.
However, I would like to find out:
1. Can I validate my web service inputs againest the generated XMLBeans objects/schema, in Weblogic 8.1?
2. How do I validate my input parameters from the web service? My input parameters include enumerations of valid values and also numeric values.
Fyi, the XMLBeans objects were generated from the schema which i created, and my web service is using these XMLBeans objects.
Great Thanks!This is crazy! Someone must have come across this problem
before.
I've simplified my question and used a much simplier method
from the web service, here goes!
::: Here's my code :::
<cfscript>
webservice = CreateObject("webservice","dummy?wsdl");
webservice.doBuildQuoteForItinerary("123456,"en_US","","1113");
</cfscript>
::: Here's the error :::
Could not perform web service invocation
"doBuildQuoteForItinerary".
Here is the fault returned when invoking the web service
operation:<br> <pre>AxisFault faultCode: {
http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode: faultString:
com.raileurope.web.ngserver.InternalErrorException:
java.lang.NullPointerException faultActor: faultNode: faultDetail:
http://xml.apache.org/axis/}hostname:dummy
</pre>
There must be something wrong with how I'm passing in the
parameters. Is it the null string??!?!?
Any help would be great! -
Can XMLBeans validate Web Services Input Parameters?
Hi,
I am very new to XMLBeans and Web Services. From my understanding, schemas can be used to validate an xml document.
However, I would like to find out:
1. Can I validate my web service inputs againest the generated XMLBeans objects/schema?
2. How do I validate my input parameters from the web service? My input parameters include enumerations of valid values and also numeric values.
Fyi, the XMLBeans objects were generated from the schema which i created, and my web service is referencing/using these XMLBeans objects to package the results to the calling class/method.
Great Thanks!This is crazy! Someone must have come across this problem
before.
I've simplified my question and used a much simplier method
from the web service, here goes!
::: Here's my code :::
<cfscript>
webservice = CreateObject("webservice","dummy?wsdl");
webservice.doBuildQuoteForItinerary("123456,"en_US","","1113");
</cfscript>
::: Here's the error :::
Could not perform web service invocation
"doBuildQuoteForItinerary".
Here is the fault returned when invoking the web service
operation:<br> <pre>AxisFault faultCode: {
http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode: faultString:
com.raileurope.web.ngserver.InternalErrorException:
java.lang.NullPointerException faultActor: faultNode: faultDetail:
http://xml.apache.org/axis/}hostname:dummy
</pre>
There must be something wrong with how I'm passing in the
parameters. Is it the null string??!?!?
Any help would be great! -
Hello,
In the attached Vi, if I switch the input parameters of the equal comparison, the Vi compiles. Otherwise it shows the class conflict error.
In the real system, I just switched between the parameters and everything worked fine but I'd like to know why this version is wrong so next time I don't waste so much time debugging.
Thanks,
Marce
Attachments:
SDDSSupervisorTest2.vi 26 KBIt looks like you dropped a refnum from the front panel palette and then set the type to boolean; this created a weak-typed refnem. To make a strong typed refnum, right click on the control and select create reference; a reference appears on the block diagram. Go to the reference and right click create control. The reference control on the front panel now has the orange star indicating that it is strong typed.
I don't know why equals behaves the way it does with weak-typed references. You might also experiment with the equals operator on the Express palette.
Attachments:
SDDSSupervisorTest2-a.vi 34 KB -
Hi All..
We are trying to create a Universe (using IDT-Version4.0) on top of the HANA Calculation view. The Calculation view has 4 input parameters, So
in Universe side we have created the respective prompts. For the creation of derived table we have used the following code
SELECT *
FROM "_SYS_BIC"."<schema_name>.<CV_Calculation_View_test>"
'PLACEHOLDER'=('$$IP_A$$','@Prompt(A)'),
'PLACEHOLDER'=('$$IP_B$$','@Prompt(B)'),
'PLACEHOLDER'=('$$IP_C$$','@Prompt(C)'),
'PLACEHOLDER'=('$$IP_D$$','@Prompt(D)')
While validating the above code we are getting an error.
I have attached the snapshot of that error for your reference. Please find the attachment and help me in resolving it.
Thanks in advance.Hello George,
I don't have any personalization set on the info space. Also I am using mapped Account in BI to connect to HANA. The confusing part is that it is able to validate the infospace with the input parameters and index it. However query does not return any results. I even tried running the same query which explorer sends to HANA in the SQL editor and there too the same results,the query does not return anything. The model does return data when I do a data preview and if accessed from other tools like AAO.
Also when I use SSO connection to HANA, indexing of the infospace fails. Where can I see the error log?
Thanks, -
How to log input parameters for Function Modules?
Hi,
I need to create a Logging system to trace input parameters for function modules.
The log functionality could be done by developing a class method or a function module (For example 'write_log'), and calling it within each function module that I want to log. The 'write_log' code should be independent from the interface of the Function Module that I want to log.
For example, I'd like to write a function/class method that can log both these functions modules:
Function DummyA
Input parameters: A1 type char10, A2 type char10.
Function DummyB
Input parameters: B1 type char20, B2 type char20, B3 type char20, B4 type Z_MYSTRUCTURE
Now the questions...
- Is there a "standard SAP" function that provide this functionality?
- If not, is there a system variable in which I can access runtime all parameters name, type and value for a particular function module?
- If not, how can I loop at Input parameters in a way that is independent from the function module interface?
Thank you in advance for helping!check this sample code. here i am capturing only parameters (import) values. you can extend this to capture tables, changin, etc.
FUNCTION y_test_fm.
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(PARAM1) TYPE CHAR10
*" REFERENCE(PARAM2) TYPE CHAR10
*" REFERENCE(PARAM3) TYPE CHAR10
DATA: ep TYPE STANDARD TABLE OF rsexp ,
ip TYPE STANDARD TABLE OF rsimp ,
tp TYPE STANDARD TABLE OF rstbl ,
el TYPE STANDARD TABLE OF rsexc ,
vals TYPE tihttpnvp ,
wa_vals TYPE ihttpnvp ,
wa_ip TYPE rsimp .
FIELD-SYMBOLS: <temp> TYPE ANY .
CALL FUNCTION 'FUNCTION_IMPORT_INTERFACE'
EXPORTING
funcname = 'Y_TEST_FM'
* INACTIVE_VERSION = ' '
* WITH_ENHANCEMENTS = 'X'
* IGNORE_SWITCHES = ' '
* IMPORTING
* GLOBAL_FLAG =
* REMOTE_CALL =
* UPDATE_TASK =
* EXCEPTION_CLASSES =
TABLES
exception_list = el
export_parameter = ep
import_parameter = ip
* CHANGING_PARAMETER =
tables_parameter = tp
* P_DOCU =
* ENHA_EXP_PARAMETER =
* ENHA_IMP_PARAMETER =
* ENHA_CHA_PARAMETER =
* ENHA_TBL_PARAMETER =
* ENHA_DOCU =
EXCEPTIONS
error_message = 1
function_not_found = 2
invalid_name = 3
OTHERS = 4
IF sy-subrc = 0.
LOOP AT ip INTO wa_ip .
MOVE: wa_ip-parameter TO wa_vals-name .
ASSIGN (wa_vals-name) TO <temp> .
IF <temp> IS ASSIGNED .
wa_vals-value = <temp> .
ENDIF .
APPEND wa_vals TO vals .
ENDLOOP .
ENDIF.
ENDFUNCTION. -
RFC Connection error - Invalid length. Check parameters.
Hi Forum, Good Morning!
My ABAP Program will run in BACK Ground Job Processing(SM37) to download data to Presentation server( Local PC Directory). So I have created a RFC destination type TCP/IP to use 'RFC_REMOTE_FILE' function module in my ABAP Program.
When I am trying to test RFC connection It is giving following error.
ERROR Invalid length. Check parameters
LOCATION SAP- Server dsapp05_R3D_10 on host dsapp05 (wp 2)
COMPONENT CPIC
COUNTER 14
MODULE
LINE
RETURN CODE 240
SUBRC 0
RELEASE 640
TIME Mon Dec 11 10:08:05 2006
I did following procedure before I test RFC destination..
I have created RFC Destination : BJRFC
Technical Settings: Selected Registered Server Program radio button
Program ID: BJACCESS
Gateway host : 172.22.149.199
gateway Service: sapdp10
In my local machine Copied SAPRFC.INI file from the TEXT folder to the BIN Folder.
Then open the SAPRFC.INI file in BIN folder and Register a RFC server program at a SAP Gateway.
DEST=R3D_R
TYPE=R
PROGID=BJACCESS.rfcexec
GWHOST=172.22.149.199
GWSERV=sapdp10
RFC_TRACE=0
DEST=R3D_R
TYPE=R
PROGID=BJACCESS.trfcexec
GWHOST=172.22.149.199
GWSERV=sapdp10
RFC_TRACE=0
Then entered below command in dos prompt.
C:\Program Files\SAP\FrontEnd\SAPgui\rfcsdk\bin>rfcexec -aBJACCESS 172.22.149.199 xsapdp10.
so how do i proceed in this kind of case.
any help please.
Thanks in advance.Hi,
Just you check whether your program is registered or not.
If it is registered then you can find in SMGW transaction and go to
GOTO - Logged on clients
in that you will be able to see your program name if it registers succesfully.
you have typed rfcexec -aBJACCESS 172.22.149.199 xsapdp10
in this way.
In this you have misseg 'g' in front of your sap ip.
Thanks&Regards
Rajehs Balusu -
How to write a SQL query in SAP B1 2007 B with input parameters?
How to write a SQL query in SAP B1 2007 B with input parameters, on execution of which will ask for some input value from the user and the values will be selected from a list such as item list?
The syntax like
SELECT * FROM OITM T0 WHERE T0.ItemCode = '[%0\]'
Thanks,
Gordon
Maybe you are looking for
-
When I try to install "AppleMultiTouchTrackPadInstaller64.exe" (Apple Multitouch (09/04/2013 5.0.20) and Apple Multitouch Mouse (09/11/2012 4.0.3.0)) on Windows 8.1 I get an install failed. As a result of this, I can't use right click (does not even
-
Container TLF text problem!
Hello, I want to copy this text paragraph from notepad (img1) and paste into a TLF container with 2 columns (img2), but it seems that something is wrong. Please look at the second picture and if anyone has any idea how to solve this problem?
-
I recently imported a video to my hard drive using MacTheRipper. I wanted it to be in .mov format so I ran it through MPEG StreamClip 1.3.1 (With the box checked to "fix streams with data breaks"). This took about 20 hr to do and my end result is foo
-
Email SQL query results from powershell
I currently have a script that I run every half hour which runs an sql query, and takes the results, and emails them to a group of users. The script states how many faxes are in a faxmaker queue. Now, the powers that be would like to add additional
-
Receivables question: AR invoices/credit memos between Supplier Sites
I'm trying to solution a client requirement of having the ability to transfer AR invoices/credit memos between supplier sites of the same supplier. Is this possible or is there a comparable workaround available in Receivables R12? Thanks, Chris