Passing record Types in BPEL
Hi all,
I was creating and passing / getting back record types for calling a plsql method in bpel , until i came upon a method where i define a type ref cursor and get all the attributes in the ref cursor. This makes my application very generic as i can add as many out put parameters into the record type and get them in the xml. I just wanted to know the pros and cons of this approach . Is this better than defining a static record type and getting the values as the only changes i need to make if the calling application asks for more parameters would be in the backend code.
Thanks
-Pradip
All interesting to know, but it all confirms what I thought all along: object types and its associated object cache were designed to manipulate table data not temporary data that was created and passed just to satisfy the temporary need to get data into a Pro*C/C application.
Thanks! But it looks like object types bring with them an amount of overhead that is not going to be suitable for our task. We'd constantly be bringing in the objects, consuming them, and then flushing them out of the cache because we'll be recreating them again next time (in the PL/SQL procedure) and they won't ever be the same. In order for this to change we'd need to redesign the entire thing, and while that is certainly something to keep in mind, for now we don't have the time!
If and when we decide to redesign, I will certainly take all this into consideration!
For my own edification, however, how much faster did you find the OCCI implementation over the Pro*C implementation? We don't use the OCI layer for anything yet, so this would be a first, and so I may have to sell its use.
Thanks!
-- Brian
Similar Messages
-
Passing Record type parameter from one session to other session
Hi,
I have a package.procedure, in that I am calling custom workflow, inside this workflow again I am calling
same package.procedure (Its an recursive call)
I need to pass record type parameter in this package.procedure.
I tried with global variables but Workflow starts its new session so it losses all variables.
Now I am going with creation of Custom table.
Please advice, is there any way other than creation of Custom table.
I mean can we pass Record type parameter from one session to other session without creating table.
Regards
RohitAl-Salamu Alikum We Rahmatu Allah We Barakatu...
want this place from to be passed as a parameter to the shipping bill form..... using web.show_documentwhy don't u think of just passing data parameter or global parameters from one form to another
Pass global variable between two forms.
Hope this helps...
Regards,
Abdetu... -
Passing record type into function [error: identifier must be declared]
Hi,
I have a record type defined in my procedure
type chk_tab is record(
effect date,
count number(9)
type chk_typ is table of chk_tab index by binary integer;
chk_typ_rec chk_typ;
I have to pass the effect and count into another function, i tried doin as below:
function name: func_chk_typ
func_chk_typ(effect, count);
this returns an saying "identifier effect needs to be declared"
I am required to pass these values from the record type into the function, How can i over come this??
Any help is very much appreciated.Hi Hemz,
Find below code.
Function Code:
CREATE OR REPLACE FUNCTION fetch_band(eff in date,ineff in date)
return number
is
lu_cb_sysid NUMBER;
BEGIN
select fk_cb_sysid
into lu_cb_sysid
from ia_for_icon
where cr_ans_date >= eff
and cr_ans_date < ineff;
RETURN lu_cb_sysid;
END fetch_band;Procedure code. Here I have embedded the function.
CREATE OR REPLACE procedure abc(a varchar, b number) is
type cns_tab_record is record(
eff date,
ineff date);
type cns_tab_typ is table of cns_tab_record index by binary_integer;
cns_tab cns_tab_typ;
v_lu_cb_sysid NUMBER;
BEGIN
-- Here you have to assign the values to your table type record.
-- For example I am passing two values SYSDATE and SYSDATE - 10
cns_tab(1).eff := SYSDATE;
cns_tab(1).ineff := SYSDATE - 10;
v_lu_cb_sysid:= fetch_band(cns_tab(1).eff, cns_tab(1).ineff);
END abc;But I am just wondering why you are using table type datatype here.
Hope above code will help you.
Thanks,
Suri -
PL/SQL Passing record type between two procedures
I have a package and package body as following
My problem is I forgot the syntax to pass the record type between the two procedure.?????
CREATE OR REPLACE PACKAGE Standby_Schedules_Disp
AS
PROCEDURE Get_schedule (test1 OUT VARCHAR2);
PROCEDURE get_test (my_test REF my_sched); DOESN'T WORK?????
END Standby_Schedules_Disp;
CREATE OR REPLACE PACKAGE BODY Standby_Schedules_Disp
AS
PROCEDURE Get_schedule (test1 OUT VARCHAR2)
AS
temp NUMBER;
TYPE my_sched IS RECORD ( my_name VARCHAR2(30) := NULL,
my_age NUMBER := 0);
who_I_am my_sched;
Get_test(my_sched);
BEGIN
test1 := 'aaaaa';
who_i_am.my_name := 'Matthew';
END get_schedule;
PROCEDURE get_test (my_test REF my_sched) DOESN'T WORK?????
AS
BEGIN
END;
END Standby_Schedules_Disp;
/Youv'e declared the my_sched type within the scope of the Get_schedule procedure - it's not visible to the get_test procedure. You have declare the type in the package body if it's only used internally within the package or in the package spec if it can be referenced outside the package:
CREATE OR REPLACE PACKAGE [BODY] Standby_Schedules_Disp
AS
TYPE my_sched IS RECORD (
my_name VARCHAR2(30) := NULL,
my_age NUMBER := 0);I don't understand what you are trying to do with the REF keyword in this context. Having declared the type, you can use it as normal in a parameter spec:
PROCEDURE get_test (my_test IN [OUT] my_sched);You're also trying to call get_test within the declaration section of a program, which you can't do, and get_test also contains no executable code, which is not allowed in PL/SQL. -
Executing dynamic procedure with record type
Hi,
I have a small issue...I'm not attaching any tables / data..etc...I just want to know how to pass the record type to a procedure (which are actually obtained from a table) dynaically..Unable to form the sql statement..
I get an error saying that "wrong number or types of arguments in call to ||"...
-- see ** below where I'm getting an error.
.Need to pass the whole record type "l_shl_order_msg"
CREATE OR REPLACE PROCEDURE CM_BUILD_MSG_PRC (P_IN_BLD_MSG_CURSOR IN SYS_REFCURSOR,
P_OUT_BLD_MSG_CURSOR OUT SYS_REFCURSOR)
IS
l_shl_order_msg CRAE_INTERFACE.GLB_VAR_PKG.deid_SHELL_order_typ;
V_MSG_SHELL_NAME VARCHAR2(1000);
V_MESG_TEXT_SEGMENT VARCHAR2(1000);
V_TEXT VARCHAR2(1000);
V_MSG_TEXT VARCHAR2(4000);
V_MSG_FINAL_TEXT VARCHAR2(4000);
V_MSG_PROC VARCHAR2(1000);
V_SQL VARCHAR2(4000);
V_CNT NUMBER;
L_STATUS VARCHAR2(100);
L_REASON VARCHAR2(1000);
BEGIN
LOOP
FETCH P_IN_BLD_MSG_CURSOR
INTO l_shl_order_msg;
EXIT WHEN P_IN_BLD_MSG_CURSOR%NOTFOUND;
END LOOP;
Select mesg_shell_text, mesg_dynamic_var_count
into V_MSG_TEXT, V_CNT
from CRAE_MESG_MASTER
where mesg_shell_name = l_shl_order_msg.SHELL_ID;
For i in 1..V_CNT
LOOP
SELECT MESG_SHELL_NAME, MESG_TEXT_SEGMENT, PROCEDURE_NAME
INTO V_MSG_SHELL_NAME, V_MESG_TEXT_SEGMENT, V_MSG_PROC
FROM CRAE_MESG_MASTER_DETAIL
WHERE I = MESG_SEQ_NUMBER
AND mesg_shell_name = l_shl_order_msg.SHELL_ID;
V_SQL:= 'BEGIN '||V_MSG_PROC||'(''' || l_shl_order_msg|| ''',' ||
'''' || V_MSG_SHELL_NAME || ''',' || '''' || V_MESG_TEXT_SEGMENT
|| ''', CRAE_INTERFACE.GLB_VAR_PKG.V_TEXT );'||'END;';
DBMS_OUTPUT.PUT_LINE(V_SQL);
EXECUTE IMMEDIATE (V_SQL);
V_TEXT := CRAE_INTERFACE.GLB_VAR_PKG.V_TEXT;
IF I = 1
THEN
V_MSG_TEXT := REPLACE(V_MSG_TEXT,V_MESG_TEXT_SEGMENT,V_TEXT);
V_MSG_FINAL_TEXT := V_MSG_TEXT;
ELSE
V_MSG_FINAL_TEXT := REPLACE(V_MSG_FINAL_TEXT,V_MESG_TEXT_SEGMENT,V_TEXT);
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE(V_MSG_FINAL_TEXT);
-- L_STATUS := CRAE_INTERFACE.GLB_VAR_PKG.V_STATUS;
-- L_REASON := CRAE_INTERFACE.GLB_VAR_PKG.V_REASON;
OPEN P_OUT_BLD_MSG_CURSOR
FOR
SELECT l_shl_order_msg.MESSAGE_DATE_TIME,
l_shl_order_msg.MASKED_ID,
l_shl_order_msg.OFFSET_DATE,
l_shl_order_msg.PATIENT_ACCOUNT_NUMBER,
l_shl_order_msg.ORDER_CONTROL,
l_shl_order_msg.PLACER_ORDER_NUMBER,
l_shl_order_msg.QUANTITY,
l_shl_order_msg.INTERVAL,
l_shl_order_msg.DURATION,
l_shl_order_msg.START_DATE_TIME,
l_shl_order_msg.END_DATE_TIME,
l_shl_order_msg.PRIORITY,
l_shl_order_msg.ORDERING_DATE,
l_shl_order_msg.ENTERED_BY_ID,
l_shl_order_msg.ENTERED_BY_FAMILY_NAME,
l_shl_order_msg.ENTERED_BY_GIVEN_NAME,
l_shl_order_msg.ORDERED_BY_ID,
l_shl_order_msg.ORDERED_BY_FAMILY_NAME,
l_shl_order_msg.ORDERED_BY_GIVEN_NAME,
l_shl_order_msg.REPEAT_PATTERN,
l_shl_order_msg.DRUG_CODE,
l_shl_order_msg.DRUG_DESCRIPTION,
l_shl_order_msg.REQUESTED_GIVE_AMOUNT,
l_shl_order_msg.REQUESTED_GIVEN_UNIT,
l_shl_order_msg.SIG,
l_shl_order_msg.ALLOW_SUBSTITUTION,
l_shl_order_msg.REQUESTED_DISPENSE_AMOUNT,
l_shl_order_msg.REQUESTED_DISPENSE_UNIT,
l_shl_order_msg.REFILLS,
l_shl_order_msg.ROUTE,
l_shl_order_msg.STATUS,
l_shl_order_msg.REASON,
V_MSG_FINAL_TEXT,
T.COMP_ID,
T.PROC_ID,
T.Procedure_Desc
FROM CRAE_MESG_rule_MASTER T
WHERE MSG_SHELL_NAME = l_shl_order_msg.SHELL_ID;
-- dbms_output.put_line (l_shl_order_msg.MESSAGE_DATE_TIME);
END;** I get an error saying that "wrong number or types of arguments in call to ||"...
Not sure how to pass record type dynamically...sb,
declare
l_shl_order_msg CRAE_INTERFACE.GLB_VAR_PKG.deid_SHELL_order_typ;
V_MSG_SHELL_NAME VARCHAR2(1000);
V_MESG_TEXT_SEGMENT VARCHAR2(1000);
V_SQL VARCHAR2(4000);
V_MSG_PROC VARCHAR2(1000);
begin
V_SQL := 'BEGIN '||V_MSG_PROC||'(l_shl_order_msg)'||'END;';
DBMS_OUTPUT.PUT_LINE(V_SQL);
end;when I execute this...l_shl_order_msg is passed as variable..but instead I want to pass all columns in the recordtype to be passed..
ex : l_shl_order_msg.id, l_shl_order_msg.name....etc..
This is what is being passed :
BEGIN ATTRIBUTE_PRC( l_shl_order_msg ,'CDS_1','text-1', CRAE_INTERFACE.GLB_VAR_PKG..V_TEXT );
ATTRIBUTE_PRC has already been defines as record type with i/p parameter..
Edited by: user7431648 on Jul 26, 2012 8:25 AM
Edited by: user7431648 on Jul 26, 2012 8:27 AM -
Say I have the following package:
CREATE OR REPLACE PACKAGE temp_test_pkg IS
TYPE test_type IS RECORD (
num number,
chr varchar2(10));
TYPE test_arr_type IS TABLE OF test_type INDEX BY PLS_INTEGER;
PROCEDURE test_proc(p_tst OUT test_type);
PROCEDURE test_proc2(p_tst OUT test_arr_type);
END temp_test_pkg;And I want to call the test_proc and test_proc2 functions from a Pro*C application. How can I do this? I have not seen any method to pass record types, or even worse tables of record types, in Pro*C and so far the only thing I can think of is to break up the record into individual arguments, which is ugly.
I have looked into the Object Type Translator and I don't think it will work without making changes to the packages since everything will have to be re-typed as object types. I can not do this, so unless OTT will work without changing the types that "solution" is out.All interesting to know, but it all confirms what I thought all along: object types and its associated object cache were designed to manipulate table data not temporary data that was created and passed just to satisfy the temporary need to get data into a Pro*C/C application.
Thanks! But it looks like object types bring with them an amount of overhead that is not going to be suitable for our task. We'd constantly be bringing in the objects, consuming them, and then flushing them out of the cache because we'll be recreating them again next time (in the PL/SQL procedure) and they won't ever be the same. In order for this to change we'd need to redesign the entire thing, and while that is certainly something to keep in mind, for now we don't have the time!
If and when we decide to redesign, I will certainly take all this into consideration!
For my own edification, however, how much faster did you find the OCCI implementation over the Pro*C implementation? We don't use the OCI layer for anything yet, so this would be a first, and so I may have to sell its use.
Thanks!
-- Brian -
DB proc - do you need to create a table to pass a ref cursor record type?
I want to pass a limited selection of columns from a large table through a DB procedure using a REF CURSOR, returning a table rowtype:
CREATE OR REPLACE package XXVDF_XPOS_DS021_ITEMS AS
TYPE XXVDF_XPOS_DS021_ITEM_ARRAY
IS REF CURSOR
return XXVDF_XPOS_DS021_ITEM_TABLE%ROWTYPE;
Do I need to create this dummy table?
I can't get a TYPE to work, where the type is an OBJECT with the desired columns in it.
So a dummy empty table will sit in the database...
Is there another way?
thanks!You can use RECORD type declaration:
SQL> declare
2 type rec_type is record (
3 ename emp.ename%type,
4 sal emp.sal%type
5 );
6 type rc is ref cursor return rec_type;
7 rc1 rc;
8 rec1 rec_type;
9 begin
10 open rc1 for select ename, sal from emp;
11 loop
12 fetch rc1 into rec1;
13 exit when rc1%notfound;
14 dbms_output.put_line(rec1.ename || ' ' || rec1.sal);
15 end loop;
16 close rc1;
17 end;
18 /
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300or use, for example, VIEW to declare rowtype:
SQL> create view dummy_view as select ename, sal from emp;
View created.
SQL> declare
2 type rc is ref cursor return dummy_view%rowtype;
3 rc1 rc;
4 rec1 dummy_view%rowtype;
5 begin
6 open rc1 for select ename, sal from emp;
7 loop
8 fetch rc1 into rec1;
9 exit when rc1%notfound;
10 dbms_output.put_line(rec1.ename || ' ' || rec1.sal);
11 end loop;
12 close rc1;
13 end;
14 /
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300 Rgds. -
How to pass RECORD input type to stored procedure from JDBC?
Hi,
We have stored procedure which takes RECORD as input .
We could execute the below script from oracle client tool and get the response.
declare
l_record app.batch_update.add_record;
l_id number;
begin
-- memberNumber
l_record.no := '123456700';
-- Policy Number
l_record.pno := '1234567'
-- Status. This will always be NEW.
-- Call to API to add record
app.batch_update.add_request
(p_record => l_record,
p_id => l_id,
end;
We have requirement to construct RECORD input from Java application and pass it to callable statement.
We have tried to construct it via STRUCT and pass it to callable statement but it didn't work.
We have constructed it like the following but not sure whether it is correct. It was throwing error "java.sql.SQLException: invalid name pattern: app.batch_update.add_record
StructDescriptor structdesc = StructDescriptor.createDescriptor
("app.batch_update.add_record", delConn);
Object[] p1obj = {' 12345','124050'};
STRUCT p1struct = new STRUCT(structdesc, delConn, p1obj);
Not sure whether I am doing the logic correctly.
Please point me to the correct approach.
Thanks in Advice
ThanksWrap the method using a record-type parameter in PL/SQL; a simplified example follows. Add exception handling, translation of types etc. as needed.
CREATE OR REPLACE PROCEDURE prc_wrap_prc_using_rec
pv_my_field_01 IN VARCHAR2,
pv_my_field_02 IN VARCHAR2,
pv_my_field_99 IN VARCHAR2,
pv_err_msg OUT VARCHAR2
) AS
-- Non-scalar parameter
pr_my_record user.pkg_rec_declarations.wr_a_record_decl;
BEGIN
-- Load the work record
pr_my_record.pv_field_01 := pv_my_field_1;
pr_my_record.pv_field_02 := pv_my_field_2;
pr_my_record.pv_field_99 := pv_my_field_99;
-- Call the procedure
pkg_std_routines.prc_do_sumfin(pr_my_record, pv_err_msg);
END; -
Pass a record type vaiable in out parameter of a function in a package
Hi All,
1.I have created a ecod inside a package.
2.Then created a function which has a out parameter of the above record.
3.Now package body i'm creating a dynamic cursor .
4.My equirement is to fetch this dynamic cursor's value into the out parameter of the function.
I have created the below code for 1,2 and 3 but not getting how to achive the point 4.
create package pkg
type t_rec is recod (id number,id_name varchar2(10));
type t_data is table of t_rec index by binary_integer;
act_data t_data;
funcion return_data is (dept in number,region in number,o_rec out t_data) return boolean;
end pkg;
create package body pkg
funcion return_data is (dept in number,region in number,o_rec out t_data) return boolean is
p_cur sys_refcursor;
l_text varchar2(100);
begin
-- As per my requirement i have built a dynamic l_text which contains where clause by taking dept and region values.In actual i have nearly 10 in paramaters with >which i'm building a dynamic where clause in l_text. So i'm using a ref cursor.
open p_cur for 'select id,id_name from tab1'||l_text';
fetch p_cur bulk collect into act_data;
exception ....
end pkg;Now as per the code snippet i could fetch all the rows returned by p_cur into act_data.
But how i will pass it though out parameter in the function which i will use somewhere in front end to show data.
Please help me in this.
Thanks in advance.bp wrote:
i need to create the where clause one the basis of the values of IN parameters.Sometimes i need to take count of the data on the basis of the IN parameters and if one of the conditions return value i will build where clause with those parameters.Please google and read up on the importance of creating shareable SQL - which needs to be done using bind variables.
The ref cursor interface in PL/SQL only support a static/fixed number of bind variables. So if you want to create cursors with variable number of bind values, you need to use conditional processing. E.g.
SQL> create or replace procedure EmpFilter( c OUT sys_refcursor, nameFilter varchar2, jobFilter varchar2 ) is
2 sqlSelect varchar2(32767);
3 begin
4 --// we pretend to built a dynamic SQL statement - so the table
5 --// name and so on is "unknown"
6 sqlSelect := 'select * from emp ';
7 case
8 when nameFilter is null and jobFilter is null then
9 open c for sqlSelect;
10
11 when nameFilter is null and jobFilter is not null then
12 sqlSelect := sqlSelect||'where job like :filter';
13 open c for sqlSelect using jobFilter;
14
15 when nameFilter is not null and jobFilter is null then
16 sqlSelect := sqlSelect||'where ename like :filter';
17 open c for sqlSelect using nameFilter;
18
19 when nameFilter is not null and jobFilter is not null then
20 sqlSelect := sqlSelect||'where ename like :filter1 and job like :filter2';
21 open c for sqlSelect using nameFilter, jobFilter;
22
23 end case;
24
25 DBMS_OUTPUT.put_line( 'Dynamic SQL: '||sqlSelect );
26 end;
27 /
Procedure created.
SQL>
SQL>
SQL> var c refcursor
SQL> begin
2 EmpFilter( :c, 'A%', null );
3 end;
4 /
Dynamic SQL: select * from emp where ename like :filter
PL/SQL procedure successfully completed.
SQL> print c
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30
7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20
SQL>
SQL> begin
2 EmpFilter( :c, null, 'ANALYST' );
3 end;
4 /
Dynamic SQL: select * from emp where job like :filter
PL/SQL procedure successfully completed.
SQL> print c
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20
7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20
SQL>And this approach is for external clients - where a Visual Basic or Java client program calls the database, executes the stored procedure, and receives a cursor handle in turn. And the client then fetches the output of this cursor and process it.
There is no need to return a record type of any sorts. The client wants the cursor handle as that is the optimal and best interface for the client to receive database data.
If the caller is not an external client, but another PL/SQL procedure, then this approach does not make much sense.
It is important that you understand basic Oracle concepts and fundamentals. What a cursor is. What the best way is to process Oracle data. How to best use the basic features of Oracle. Without that basic understanding, you as good as a low hour Cessna pilot getting into an Airbus A400M - where the Cessna pilot would not even be able to start a single engine, never mind get the plane in the air.
Likewise, without a basic understanding of Oracle cursors and fundamentals, you will be unable to code even a single line of sensible code. Not because you are a bad programmer. Even the best programmer in the world will be unable to write decent code, if the programmer has no idea how the environment works, what the concepts and fundamentals are. But it is fair to expect that a good programmer will no write such code, understand that there is a lack of knowledge, and address that accordingly. -
Error passing in RECORD type into API
Gurus,
Getting the following error when I try and pass a RECORD type into an API. Am I passing it in properly?
Any help is appreciated.
Thanks,
-Scott
Here's my error:
fnd_descr_flex_col_usage_pkg.load_row
ERROR at line 21:
ORA-06550: line 21, column 4:
PLS-00306: wrong number or types of arguments in call to 'LOAD_ROW'
ORA-06550: line 21, column 4:
PL/SQL: Statement ignored
Here's my anon block:
declare
TYPE who_type IS RECORD
created_by NUMBER,
creation_date DATE,
last_updated_by NUMBER,
last_update_date DATE,
last_update_login NUMBER
v_who_type who_type;
v_sysdate date;
begin
select sysdate
into v_sysdate
from dual;
v_who_type.created_by := 0;
v_who_type.creation_date := v_sysdate;
v_who_type.last_updated_by := 0;
v_who_type.last_update_date := v_sysdate;
v_who_type.last_update_login := 0;
fnd_descr_flex_col_usage_pkg.load_row
(x_application_short_name => 'SPL',
x_descriptive_flexfield_name => 'HR_LOCATIONS' ,
x_descriptive_flex_context_cod => '441',
x_application_column_name => 'ATTRIBUTE5',
x_who => v_who_type,
x_end_user_column_name => 'District',
x_column_seq_num => 10,
x_enabled_flag => 'Y',
x_required_flag => 'N',
x_security_enabled_flag => 'N',
x_display_flag => 'Y',
x_display_size => 50,
x_maximum_description_len => 50,
x_concatenation_description_le => 25,
x_flex_value_set_name => '50 Characters',
x_range_code => '',
x_default_type => '',
x_default_value => '',
x_runtime_property_function => '',
x_srw_param => '',
x_form_left_prompt => 'District',
x_form_above_prompt => 'District',
x_description => '');
...I followed Tubby's advice and called the package to which the RECORD type was defined, however, I'm getting a "no data found" error in the called package. The purpose of "internally" definining the record type inside my Anon block was so that I could assign variables locally.
Help from you gurus would be greatly appreciated!
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "APPS.FND_DESCR_FLEX_COL_USAGE_PKG", line 508
ORA-06512: at line 21
Please do not refer me to any more EBS forums or links. This is a coding question, not an EBS question.
For the guy who asked, here is the procedure definition:
PROCEDURE load_row
(x_application_short_name IN VARCHAR2,
x_descriptive_flexfield_name IN VARCHAR2,
x_descriptive_flex_context_cod IN VARCHAR2,
x_application_column_name IN VARCHAR2,
x_who IN fnd_flex_loader_apis.who_type,
x_end_user_column_name IN VARCHAR2,
x_column_seq_num IN NUMBER,
x_enabled_flag IN VARCHAR2,
x_required_flag IN VARCHAR2,
x_security_enabled_flag IN VARCHAR2,
x_display_flag IN VARCHAR2,
x_display_size IN NUMBER,
x_maximum_description_len IN NUMBER,
x_concatenation_description_le IN NUMBER,
x_flex_value_set_name IN VARCHAR2,
x_range_code IN VARCHAR2,
x_default_type IN VARCHAR2,
x_default_value IN VARCHAR2,
x_runtime_property_function IN VARCHAR2,
x_srw_param IN VARCHAR2,
x_form_left_prompt IN VARCHAR2,
x_form_above_prompt IN VARCHAR2,
x_description IN VARCHAR2) -
How to pass parameter in sql developer for debubing record type
DECLARE
IB_BP_BANK_ACCOUNT_BUF PL/SQL RECORD; ---record type
IP_BP_ID NUMBER;
IOP_ACC_SEQ_NO NUMBER;
OP_ERROR VARCHAR2(200);
BEGIN
IB_BP_BANK_ACCOUNT_BUF := NULL;
IP_BP_ID := NULL;
IOP_ACC_SEQ_NO := NULL;
ORAGTW11.MAINTAIN_BP_BANK(
IB_BP_BANK_ACCOUNT_BUF => IB_BP_BANK_ACCOUNT_BUF,
IP_BP_ID => IP_BP_ID,
IOP_ACC_SEQ_NO => IOP_ACC_SEQ_NO,
OP_ERROR => OP_ERROR
/* Legacy output:
DBMS_OUTPUT.PUT_LINE('IOP_ACC_SEQ_NO = ' || IOP_ACC_SEQ_NO);
:IOP_ACC_SEQ_NO := IOP_ACC_SEQ_NO;
/* Legacy output:
DBMS_OUTPUT.PUT_LINE('OP_ERROR = ' || OP_ERROR);
:OP_ERROR := OP_ERROR;
END;Something like this:
Assuming you have a procedure like this:
CREATE OR REPLACE PROCEDURE abc (p_emp emp%ROWTYPE)
IS
BEGIN
DBMS_OUTPUT.put_line (p_emp.empno);
END;
Then you have to call it from a PL/SQL Block in this way i.e.:
DECLARE
v_emp emp%ROWTYPE;
BEGIN
SELECT *
INTO v_emp
FROM emp
WHERE ROWNUM<=1;
abc(v_emp);
END;
Regards.
Al -
Passing complex object from bpel process to web service
I have deployed my web service on apache axis.The wsdl file looks like as follows,
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://bpel.jmetro.actiontech.com" xmlns:intf="http://bpel.jmetro.actiontech.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="ADLevelBpelWS">
- <sequence>
<element name="adLevelStr" nillable="true" type="xsd:string" />
<element name="id" type="xsd:int" />
</sequence>
</complexType>
- <complexType name="TransResultWS">
- <sequence>
<element name="description" nillable="true" type="xsd:string" />
<element name="id" type="xsd:long" />
<element name="responseType" type="xsd:int" />
<element name="status" type="xsd:boolean" />
</sequence>
</complexType>
- <complexType name="NamespaceDataImplBpelWS">
- <sequence>
<element name="ADLevel" nillable="true" type="impl:ADLevelBpelWS" />
<element name="appdataDef" nillable="true" type="apachesoap:Map" />
<element name="description" nillable="true" type="xsd:string" />
<element name="name" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="CreateSharedNamespaceBpelWS">
- <sequence>
<element name="actor" nillable="true" type="xsd:string" />
<element name="comment" nillable="true" type="xsd:string" />
<element name="from" nillable="true" type="xsd:string" />
<element name="namespaceData" nillable="true" type="impl:NamespaceDataImplBpelWS" />
<element name="priority" type="xsd:int" />
<element name="processAtTime" nillable="true" type="xsd:dateTime" />
<element name="replyTo" nillable="true" type="xsd:string" />
<element name="responseRequired" type="xsd:boolean" />
</sequence>
</complexType>
</schema>
- <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="mapItem">
- <sequence>
<element name="key" nillable="true" type="xsd:string" />
<element name="value" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="Map">
- <sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
</sequence>
</complexType>
</schema>
</wsdl:types>
+ <wsdl:message name="createNamespaceRequest">
<wsdl:part name="createNs" type="impl:CreateSharedNamespaceBpelWS" />
</wsdl:message>
- <wsdl:message name="createNamespaceResponse">
<wsdl:part name="createNamespaceReturn" type="impl:TransResultWS" />
</wsdl:message>
- <wsdl:portType name="JMetroWebService">
- <wsdl:operation name="createNamespace" parameterOrder="createNs">
<wsdl:input message="impl:createNamespaceRequest" name="createNamespaceRequest" />
<wsdl:output message="impl:createNamespaceResponse" name="createNamespaceResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="NAMESPACEWITHMAPSoapBinding" type="impl:JMetroWebService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="createNamespace">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="createNamespaceRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:input>
- <wsdl:output name="createNamespaceResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="JMetroWebServiceService">
- <wsdl:port binding="impl:NAMESPACEWITHMAPSoapBinding" name="NAMESPACEWITHMAP">
<wsdlsoap:address location="http://localhost:7001/axis/services/NAMESPACEWITHMAP" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
My NamespaceDataObjectImplBpelWS object contains element appDataDef which is of type java.util.Map.My bpel wsdl file is as below,
<?xml version="1.0"?>
<definitions name="NsWithMap"
targetNamespace="http://bpel.jmetro.actiontech.com"
xmlns:tns="http://bpel.jmetro.actiontech.com"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<element name="createNamespace" type="tns:CreateSharedNamespaceBpelWS"/>
<element name="transResult" type="tns:TransResultWS"/>
<complexType name="TransResultWS">
<sequence>
<element name="description" type="string" />
<element name="id" type="long" />
<element name="responseType" type="int" />
<element name="status" type="boolean" />
</sequence>
</complexType>
<complexType name="ADLevelBpelWS">
<sequence>
<element name="adLevelStr" type="string" />
<element name="id" type="int" />
</sequence>
</complexType>
<complexType name="NamespaceDataImplBpelWS">
<sequence>
<element name="ADLevel" type="tns:ADLevelBpelWS" />
<element name="description" type="string" />
<element name="name" type="string" />
<element name="appdataDef" type="apachesoap:Map" />
</sequence>
</complexType>
<complexType name="CreateSharedNamespaceBpelWS">
<sequence>
<element name="namespaceData" type="tns:NamespaceDataImplBpelWS" />
</sequence>
</complexType>
<element name="desc" type="string"/>
</schema>
<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="mapItem">
<sequence>
<element name="key" type="string" />
<element name="value" type="string" />
</sequence>
</complexType>
<complexType name="Map">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
</sequence>
</complexType>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="NsWithMapRequestMessage">
<part name="payload" element="tns:createNamespace"/>
</message>
<message name="NsWithMapResponseMessage">
<part name="payload" element="tns:transResult"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the NsWithMap BPEL process -->
<portType name="NsWithMap">
<operation name="initiate">
<input message="tns:NsWithMapRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of NsWithMap BPEL process
for asynchronous callback purposes
-->
<portType name="NsWithMapCallback">
<operation name="onResult">
<input message="tns:NsWithMapResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the NsWithMap partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="NsWithMap">
<plnk:role name="NsWithMapProvider">
<plnk:portType name="tns:NsWithMap"/>
</plnk:role>
<plnk:role name="NsWithMapRequester">
<plnk:portType name="tns:NsWithMapCallback"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
I am trying to set this map data using java code ,
HashMap procADMap1 = new HashMap(5);
PropertyTypeWS pType = new PropertyTypeWS();
pType.setTypeIndex(2);
AppdataDefImplWS appData1 = new AppdataDefImplWS();
appData1.setName("Project");
appData1.setType(pType);
appData1.setMaxSize(400);
appData1.setLOB(false);
appData1.setDefaultValue("Project Default value");
procADMap1.put(appData1.getName(), appData1);
setVariableData("request","createNs","/createNs/namespaceData/appdataDef",procADMap1);
Then I am passing request object to the method which I want to invoke from bpel process.
I am able to deploy the application but when I do post message I am getting following exception,
NamespaceWithMap (createNamespace) (faulted)
[2004/09/09 18:35:54] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
code: {Server.userException}
summary: {org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.}
detail: {null}
Is there any other way to handle Map type in bpel process?
Thanks in advance,
SanjayThanks for the quick reply.Actually the web service is already deployed on the server.What I want to do is use existing wsdl file of the deployed web service and invoke the method of the same using oracle PM.
If I remove element which uses apachesoap:Map type it just works fine also I am getting the complex object returned by the web service method.But when I try to set appDataDef which is of type apachesoap:Map(Axis conversion for java.util.Map and it uses namespace xmlns:apachesoap="http://xml.apache.org/xml-soap") I am getting the error.
Can you give me some direction to use this exising wsdl file to set map object or it is not possible. -
Assign activity for Complex XML type in BPEL
Hi All,
I am NEW to BPEL. I am trying to assign a constant value to a XML Fragment of complex type in BPEL.
Here is my XSD definition.
<xs:element name="AssetGetList">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q59="http://schemas.datacontract.org/2004/07/Xerox.MPS" minOccurs="0" name="request" nillable="true" type="q59:SearchRequest"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="SearchRequest">
<xs:complexContent mixed="false">
<xs:extension base="tns:RequestBase">
<xs:sequence>
<xs:element xmlns:q8="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Filters" nillable="true" type="q8:ArrayOfanyType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RequestBase">
<xs:sequence>
<xs:element minOccurs="0" name="APIKey" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="AccountID" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="AllAccessibleAccounts" type="xs:boolean"/>
<xs:element minOccurs="0" name="PageNumber" type="xs:int"/>
<xs:element minOccurs="0" name="PageSize" type="xs:int"/>
<xs:element minOccurs="0" name="SortDirection" type="tns:SortDirection"/>
<xs:element minOccurs="0" name="SortField" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="RequestBase" nillable="true" type="tns:RequestBase"/>
<xs:complexType name="DateRangeFilterParameter">
<xs:sequence>
<xs:element minOccurs="0" name="ColumnName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="EndDate" type="xs:dateTime"/>
<xs:element minOccurs="0" name="StartDate" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
<xs:element name="DateRangeFilterParameter" nillable="true" type="tns:DateRangeFilterParameter"/>
<xs:complexType name="ArrayOfanyType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfanyType" nillable="true" type="tns:ArrayOfanyType"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/">
<xs:element name="anyType" nillable="true" type="xs:anyType"/>.
In the above XSD I am able to invoke the webservice by passing the Basic inputs APIKey,AccountID and it works fine without the Filters.
Example:
<Invoke_1_AssetGetList_InputVariable>
-<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters">
-<AssetGetList xmlns="http://api.services.xerox.com">
-<request>
<APIKey xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1130a5ff-d41b-4e55-becc-f572046ff231</APIKey>
<AccountID xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">58c6d7e4-5b7e-4cfe-acf5-f1997284ed72</AccountID>
<AllAccessibleAccounts xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">true</AllAccessibleAccounts>
<PageNumber xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1</PageNumber>
<PageSize xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">10</PageSize>
<SortDirection xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">Ascending</SortDirection>
<SortField xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">AssetId</SortField>
<Filters xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS"/>
</request>
</AssetGetList>
</part>
</Invoke_1_AssetGetList_InputVariable>
When I try to add the filters I get the error message as
**INPUT:**
<temp_AssetGetList_InputVariable>
-<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters">
-<AssetGetList xmlns="http://api.services.xerox.com">
-<request>
<APIKey xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1130a5ff-d41b-4e55-becc-f572046ff231</APIKey>
<AccountID xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">58c6d7e4-5b7e-4cfe-acf5-f1997284ed72</AccountID>
-<Filters xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:xer="http://schemas.datacontract.org/2004/07/Xerox.MPS" xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">
-<arr:anyType xmlns="http://www.w3.org/2001/XMLSchema-instance" type="xer:DateRangeFilterParameter">
<xer:ColumnName>ModifiedDate</xer:ColumnName>
<xer:EndDate>2011-11-08T17:31:00</xer:EndDate>
<xer:StartDate>2011-10-02T20:31:00</xer:StartDate>
</arr:anyType>
</Filters>
</request>
</AssetGetList>
</part>
</temp_AssetGetList_InputVariable>
OUTPUT
<fault>
-<SerializationFaultFault xmlns="http://api.services.xerox.com">
-<part name="detail">
-<SerializationFault xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<Code xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">300</Code>
<Message xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
Element anyType from namespace http://schemas.microsoft.com/2003/10/Serialization/Arrays cannot have child contents to be deserialized as an object. Please use XmlNode[] to deserialize this pattern of XML.
</Message>
</SerializationFault>
</part>
</SerializationFaultFault>
</fault>
I want to add filters to this by passing the values to the DateRangeFilterParameter. I am trying to assign the StartDate and EndDate values using copy operation but was unable to do so.
Please let me know if you need any other information regarding this.
Could you please help me as how I need to pass these values of ComplexType in BPEL.Thanks for your time.
Thanks
MurthyTo add new child nodes to a parent node, you should use append, insert-before or insert-after operations in the assign activity.
Serkan -
ACH CTX - Addenda Record Type 7
Hi,
I am working on ACH CTX file for vendor payments through Wells Fargo bank. I need some help on the Addenda Record type 7. The format generated by standard SAP for this record type 7 is not acceptable by the bank. And they are not able to help us out much on what should be the format. All they say is that it should be in ANSI ASC X12 format (payment-related information) and refer NACHA format guidelines. Can anyone tell me what is this NACHA format and what data elements should be passed on in this record type. Is there a specific format I can follow?
Thanks,
Raj/Hi,
did you solve this items. Any information would be helpful.
thanks
Regards
PG -
Oracle Account Receivables Lockbox Error, No ITEM NUM on PAYMENT record type.
Hi,
For "Process Lockbox" program. The program completes normally, but receipts are not created and I am getting below error in log file:-
"AR-ARLFMT: No ITEM NUM on PAYMENT record type."
This error message is similar to error message mentioned in note id (Troubleshooting Known Issues In Lockbox (Doc ID 1366298.1)) :-
2.10. Lockbox ends with error: "AR-ARLFMT: No PAYMENT NUM on PAYMENT record type"
Symptoms
You are trying to run lockbox and receive this error message in the log file:
AR-ARLFMT: No PAYMENT NUM on PAYMENT record type.
Your lockbox interface program has completed successfully, however,there is No Data Found in the AR_PAYMENTS_INTERFACE table.
Solution
Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Transmission Formats
For the Transmission Format name that you are using, make sure that there is a 'Transmission Record' defined and that there is a Transmission Field with a Field Type of 'Record Identifier' defined.
Make sure to include the check number in Transmission Format and Control file
and item number is:-
Item Number: A sequence number that your bank assigns to a specific payment. This number associates an invoice with a receipt.
I am passing item number, but still I am getting this error.
Can anybody please help.
Thanks in advance.
Regards
Gagan GargHi,
For "Process Lockbox" program. The program completes normally, but receipts are not created and I am getting below error in log file:-
"AR-ARLFMT: No ITEM NUM on PAYMENT record type."
This error message is similar to error message mentioned in note id (Troubleshooting Known Issues In Lockbox (Doc ID 1366298.1)) :-
2.10. Lockbox ends with error: "AR-ARLFMT: No PAYMENT NUM on PAYMENT record type"
Symptoms
You are trying to run lockbox and receive this error message in the log file:
AR-ARLFMT: No PAYMENT NUM on PAYMENT record type.
Your lockbox interface program has completed successfully, however,there is No Data Found in the AR_PAYMENTS_INTERFACE table.
Solution
Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Transmission Formats
For the Transmission Format name that you are using, make sure that there is a 'Transmission Record' defined and that there is a Transmission Field with a Field Type of 'Record Identifier' defined.
Make sure to include the check number in Transmission Format and Control file
and item number is:-
Item Number: A sequence number that your bank assigns to a specific payment. This number associates an invoice with a receipt.
I am passing item number, but still I am getting this error.
Can anybody please help.
Thanks in advance.
Regards
Gagan Garg
Maybe you are looking for
-
Code snippet to send email from an iPhone App
Hi, I have tried to look under the SDK documentation but have not found any pointer. I know how to use Mail.app to send email on a desktop app but how do I do this from iPhone. Thanks!
-
I just downloaded the new Pages today from Apple, and went to start working on some exisiting documenation. I've quickly realised that the new version excludes the ability to automatically update filenames as 'inserts' inside documents. Very useful f
-
HELP: ERROR 2753 Dist_acrodist.exe
I have unistalled all Adobe related products. I have followed this link http://kb2.adobe.com/cps/327/327197.html Nothing is working, it quits half way throught the installation of Adobe Acrobat 6.0 Professional. I dont know what else to do. Help.
-
HT1338 when clicking facebook icon in i photo the publish tab to publish is Grey grey
when clicking facebook icon in IPhoto to publish photo in facebook, the publish tab is grey.
-
Make a midi performance half time
i have a midi track of a drum beat i made for a song that i want to use in another song. when i import it into the second song, it is playing double time, which is probably how i had it playing in the first song, but the tempo was so different, it so