User-defined function in package
Hi all,
is it possible to return more than 1 value when using user-defined function in package?
I'll try to describe my situation. My need is to find correct client type by its cid number. If it's individual (ct.officialtype = 3) then function returns 3. If it's not individual (ct.officialtype <> 3) then function should check ENTERPRISETYPE.id, 910 is small business (function should return 1), else it returns 2. You can find my try below, it returns
ORA-24344: success with compilation error
13/29 PLS-00201: identifier 'US1' must be declared
13/34 PL/SQL: ORA-00904: : invalid identifier
13/1 PL/SQL: SQL Statement ignored
17/4 PLS-00201: identifier 'US1' must be declared
17/1 PL/SQL: Statement ignored
9/13 PLS-00323: subprogram or cursor 'F_CLIENTTYPE' is declared in a package specification and must be defined in the package bodyCould you please give me solution on how do I write this procedure? It should be procedure, because I need to use it in SELECT statement.
CREATE OR REPLACE PACKAGE creator.marco_function_clienttype
IS
-- 0 - not found
-- 1 - small business
-- 2 - corporate
-- 3 - individual
FUNCTION f_clienttype
(cid number
RETURN NUMBER;
END;
CREATE OR REPLACE PACKAGE BODY creator.marco_function_clienttype
IS
FUNCTION f_clienttype
(ccid number)
RETURN NUMBER
IS
Us NUMBER;
Begin
--officialtype = 2 - corporate, officialtype = 3 - individual
select ct.officialtype into Us1
from contragenttype ct, contragent d
where d.id = ccid and ct.cid = d.contragenttypeid;
IF Us1 = 3 THEN
select '3' as t into Us from dual;
ELSE
--ENTERPRISETYPE.id = 910 - small business
select dd.enterprisetypeid into Us2
from contragent dd
where dd.id = ccid ;
IF Us2 = 910 THEN
select '1' as t into Us from dual;
ELSE
select '2' as t into Us from dual;
END IF;
END IF;
Return nvl(Us,0);
END;
END;
/
Similar Messages
-
How to resolve the error while using user defined function.
EPN Assembly file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
xmlns:jdbc="http://www.oracle.com/ns/ocep/jdbc"
xmlns:spatial="http://www.oracle.com/ns/ocep/spatial"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd
http://www.bea.com/ns/wlevs/spring
http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd
http://www.oracle.com/ns/ocep/jdbc
http://www.oracle.com/ns/ocep/jdbc/ocep-jdbc.xsd
http://www.oracle.com/ns/ocep/spatial
http://www.oracle.com/ns/ocep/spatial/ocep-spatial.xsd">
<wlevs:event-type-repository>
<wlevs:event-type type-name="TestEvent">
<wlevs:class>com.bea.wlevs.event.example.FunctionCEP.TestEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>
<wlevs:adapter id="InputAdapter"
class="com.bea.wlevs.adapter.example.FunctionCEP.InputAdapter">
<wlevs:listener ref="inputStream" />
</wlevs:adapter>
<wlevs:channel id="inputStream" event-type="TestEvent">
<wlevs:listener ref="processor" />
</wlevs:channel>
<wlevs:processor id="processor">
<wlevs:listener ref="outputStream" />
<wlevs:function function-name="sum_fxn" exec-method="execute">
<bean>com.bea.wlevs.example.FunctionCEP.TestFunction</bean>
</wlevs:function>
</wlevs:processor>
<wlevs:channel id="outputStream" event-type="TestEvent">
<wlevs:listener ref="bean" />
</wlevs:channel>
<bean id="bean" class="com.bea.wlevs.example.FunctionCEP.OutputBean">
</bean>
</beans>
Event class
package com.bea.wlevs.event.example.FunctionCEP;
public class TestEvent {
private int num_1;
private int num_2;
private int sum_num;
public int getSum_num() {
return sum_num;
public void setSum_num(int sumNum) {
sum_num = sumNum;
public int getNum_1() {
return num_1;
public void setNum_1(int num_1) {
this.num_1 = num_1;
public int getNum_2() {
return num_2;
public void setNum_2(int num_2) {
this.num_2 = num_2;
Adapter class
package com.bea.wlevs.adapter.example.FunctionCEP;
import com.bea.wlevs.ede.api.RunnableBean;
import com.bea.wlevs.ede.api.StreamSender;
import com.bea.wlevs.ede.api.StreamSource;
import com.bea.wlevs.event.example.FunctionCEP.TestEvent;
public class InputAdapter implements RunnableBean, StreamSource {
private StreamSender eventSender;
public InputAdapter() {
super();
public void run() {
generateMessage();
private void generateMessage() {
TestEvent event = new TestEvent();
event.setNum_1(10);
event.setNum_2(20);
eventSender.sendInsertEvent(event);
public void setEventSender(StreamSender sender) {
eventSender = sender;
public synchronized void suspend() {
Output Bean class
package com.bea.wlevs.example.FunctionCEP;
import com.bea.wlevs.ede.api.StreamSink;
import com.bea.wlevs.event.example.FunctionCEP.TestEvent;
import com.bea.wlevs.util.Service;
public class OutputBean implements StreamSink {
public void onInsertEvent(Object event) {
System.out.println("In Output Bean");
TestEvent event1 = new TestEvent();
System.out.println("Num_1 is :: " + event1.getNum_1());
System.out.println("Num_2 is :: " +event1.getNum_2());
System.out.println("Sum of the numbers is :: " +event1.getSum_num());
Function Class
package com.bea.wlevs.example.FunctionCEP;
public class TestFunction {
public Object execute(int num_1, int num_2)
return (num_1 + num_2);
config.xml file
<?xml version="1.0" encoding="UTF-8"?>
<wlevs:config xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application"
xmlns:jdbc="http://www.oracle.com/ns/ocep/config/jdbc">
<processor>
<name>processor</name>
<rules>
<view id="v1" schema="num_1 num_2">
<![CDATA[
select num_1, num_2 from inputStream
]]>
</view>
<view id="v2" schema="num_1 num_2">
<![CDATA[
select sum_fxn(num_1,num_2), num_2 from inputStream // I am getting error when i am trying to call this function
]]>
</view>
<query id="q1">
<![CDATA[
select from v2[now] as num_2* // Showing error while accessing the view also ]]>
</query>
</rules>
</processor>
</wlevs:config>
Error I am getting is :
Invalid statement: "select >>sum_fxn<<(num_1,num_2),age from inputStream"
Description: Invalid call to function or constructor: sum_fxn
Cause: Probable causes are: Function name sum_fxn(int,int) provided is invalid, or arguments are of
the wrong type., or Error while handling member access to complex type. Constructor sum_fxn of type
sum_fxn not found. or Probable causes are: Function name sum_fxn(int,int) provided is invalid, or
arguments are of the wrong type., or Error while handling member access to complex type.
Constructor sum_fxn of type sum_fxn not found.
Action: Verify function or constructor for complex type exists, is not ambiguous, and has the correct
number of parameters.
I have made a user defined function in a java class and configured this function in the EPN assembly file under the processor tag.
But when i am trying to access the function in the config.xml file , it is giving me an error in the query.
Please provide urgent help that how to write the exact query.Hi,
In the EPN Assembly file use
<bean class="com.bea.wlevs.example.FunctionCEP.TestFunction"/>
instead of
<bean>com.bea.wlevs.example.FunctionCEP.TestFunction</bean>
Best Regards,
Sandeep -
Error in simple user defined function
Hi all,
I have seen one simple user defined function on scenario. Now it is working fine. Same code I have used another place. But it is giving some errors
D:/usr/sap/C08/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapc6fa0c70297511dbaf7e00c09f4504e7/source/com/sap/xi/tf/_ST_MM_.java:3: package javax.mail.internet does not exist
import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import javax.mail.internet.;import javax.mail.;import java.util.;import java.util.Date;import javax.activation.;import java.lang.reflect.;import javax.mail.event.*;
Like that it has shown 13 errors. I have given the package names in imports field what previous function has.Hi,
Please see this from SAP help
<i>a. You can import Java packages to your methods from the Imports input field, by specifying them separated by a comma or semi-colon:
You do not need to import the packages java.lang., java.util., java.io., and java.lang.reflect. since all message mappings require these packages and therefore import them. You should be able to access standard JDK and J2EE packages of the SAP Web Application Server by simply specifying the package under Import. In other words, you do not have to import it as an archive into the Integration Repository. You can also access classes of the SAP XML Toolkit, the SAP Java Connector, and the SAP Logging Service (see also: Runtime Environment (Java-Mappings)).
In addition to the standard packages, you can also specify Java packages that you have imported as archives and that are located in the same, or in an underlying software component version as the message mapping.
b. Create your Java source text in the editor window or copy source text from another editor.</i>
http://help.sap.com/saphelp_nw04/helpdata/en/22/e127f28b572243b4324879c6bf05a0/content.htm
Regards
Vijaya -
Error in User defined function
I have created a user defined function to make a call to SAP using JCo.
But I am getting an error "package com.sap.mw.jco does not exist"
Do we need to install JCo on our server?
Thanks in advanceHallo Vijaya Kumari,
if you use XI3.0 then you should check csn note 753294:
Symptom
A message mapping contains a user-defined function that uses a class
from the "com.sap.mw.jco", "sapxmltoolkit" or "com.sap.tc.Logging"
library. An error stating that the source code contains syntax errors
occurs when you test or activate the message mapping. When you use a
class from "com.sap.mw.jco", the system reports, for example, "package
com.sap.mw.jco does not exist".
This error only occurs in systems containing a Support Package lower
than 5.
Solution
Import Support Package 5 or higher.
You can use the following workaround as a short-term solution: Upload
the library that is referenced in the message mapping into the software
component of the message mapping as an "imported archive". Do not
activate the "imported archive" with the library since it is not needed
for the runtime. The only purpose of the archive is to allow the message
mapping to be compiled. To avoid version conflicts with newer libraries,
you should delete the archive again after you import Support Package 5
or higher.
In your case you will find the relevant jar file in the path
[sap_j2ee_engine_installaltion_path]\cluster\server0\bin\ext\com.sap.mw.jco\jrfc.jar
Regards Franz -
User defined function to set a default value of a column
Hi All
Can we use user defined function to set a default value of a column ??
for example:
create or replace function test1 return number is
begin
return 10;
end;
create table testt
(id as test1,
name varchar2(20));
error:
ORA-02000: missing ( keywordThanks
Ashwani174313 wrote:
MichaelS for showing example to use function in table ddl , otherwise i was thinking we cannot use function in table ddl as per error I received.That was an example of a virtual column.
ORA-04044: procedure, function, package, or type is not allowed hereUsing PL/SQL code like that raises 2 basic problems. If that PL/SQL code for the calculating the column default breaks, what happens to the SQL insert statements against that table. These will need to fail as the table definition depends on the PL/SQL code. This is problematic as this dependency simply increases the complexity of the SQL object.
The 2nd issue is performance. PL/SQL code needs to be executed by the PL/SQL engine. This means a context switch from the SQL engine to the PL/SQL engine in order to determine the default value for that column. Context switching is a performance overhead.
So even if it was possible to use a PL/SQL function as parameter for the SQL default clause, I would not be that keen to use it. -
User - defined functions for calculating the taxes of state and country
hi expects,
how can write user-defined function in message mapping in which i want to calculate the states taxes (2500) and country taxes (5000) and give the result as grand total in output.please help me?Hi,
Activities
1. To create a new user-defined function, in the data-flow editor, choose Create New Function (This
graphic is explained in the accompanying text), which is located on the lower left-hand side of the
screen. In the menu, choose Simple Function or Advanced Function.
2. In the window that appears, specify the attributes of the new function:
Name
Technical name of the function. The name is displayed in the function chooser and on the data-flow
object.
Description
Description of how the function is used.
Cache
Function type (see above)
Argument Count
In this table, you specify the number of input values the function can process, and name them. All
functions are of type String.
3. In the window that appears, you can create Java source code:
a. You can import Java packages to your methods from the Imports input field, by specifying them
separated by a comma or semi-colon:
You do not need to import the packages java.lang., java.util., java.io., and java.lang.reflect. since
all message mappings require these packages and therefore import them. You should be able to
access standard JDK and J2EE packages of the SAP Web Application Server by simply specifying the
package under Import. In other words, you do not have to import it as an archive into the Integration
Repository. You can also access classes of the SAP XML Toolkit, the SAP Java Connector, and the
SAP Logging Service (see also: Runtime Environment (Java-Mappings)).
In addition to the standard packages, you can also specify Java packages that you have imported as
archives and that are located in the same, or in an underlying software component version as the
message mapping.
b. Create your Java source text in the editor window or copy source text from another editor.
4. Confirm with Save and Close.
5. User-defined functions are limited to the message mapping in which you created the function. To
save the new function, save the message mapping.
6. To test the function, use the test environment.
The new function is now visible in the User-Defined function category. When you select this category,
a corresponding button is displayed in the function chooser pushbutton bar. To edit, delete, or add the
function to the data-flow editor, choose the arrow next to the button and select from the list box
displayed.
Regards
Seshagiri -
In Ref cursor, user defined functions give "invalid column" error in EJB.
Hello,
I have written PL/SQL stored procedures/functions in Oracle 8i. They return the result set as a ref cursor.
These procedures are accessed by EJB (weblogic) using Type 4 (100% Java) JDBC Driver.
My problem is - if I use a user defined function to fetch a value in the select statement of the reference cursor, the EJB gives an error msg - invalid column name.
If instead of using the function I get the value directly from the table, it works fine. Refer the code below :
//In the PL/SQL function -
//instead of writing :
Open rc for
Select empcode, empname
from emp ;
//If I write :
Open rc for
Select empcode, mypack.getempname(empcode)
from emp ;
//getempname(empcode) is a function in
//in a package named 'mypack'
//and returns name for empcode.
//The java code gives error
//error : invalid column name
//While both are working fine and
//returning currect result in SQL Navigator.
Help me solve this mystery ?
Thanks in advance.
Swati.
nullHi:
When use inline Function to simplify the SQL statements, there is one thing that one should conside--Purity Level.
if you create standalone stored pl/sql function. Oracle implicitly determines the PURITY level during compilation of the stored objects or at execution of an anonymous pl/sql block.
if you implement Package inline Function( in your case),unlike standalone stored pl/sql functions, the PL?SQL Engine does not determine the purity level of package functions. Therefore, you must explicity assign the correct purity levels for the function to be called inline.
the code like:
create or replace package mypack is
function getempname(empcode emp%empid%type)
return varchar2;
PRAGMA RESTRICT_REFERENCES(getempname,WNDS,WNPS,RNPS);
end mypack;
I think it can solve your problem if you use enough "pure"to be called inline function. Or you can create the standalone function to do it.
good luck!
Yali
<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Swati Agrawal ([email protected]):
Hello,
I have written PL/SQL stored procedures/functions in Oracle 8i. They return the result set as a ref cursor.
These procedures are accessed by EJB (weblogic) using Type 4 (100% Java) JDBC Driver.
My problem is - if I use a user defined function to fetch a value in the select statement of the reference cursor, the EJB gives an error msg - invalid column name.
If instead of using the function I get the value directly from the table, it works fine. Refer the code below :
//In the PL/SQL function -
//instead of writing :
Open rc for
Select empcode, empname
from emp ;
//If I write :
Open rc for
Select empcode, mypack.getempname(empcode)
from emp ;
//getempname(empcode) is a function in
//in a package named 'mypack'
//and returns name for empcode.
//The java code gives error
//error : invalid column name
//While both are working fine and
//returning currect result in SQL Navigator.
Help me solve this mystery ?
Thanks in advance.
Swati.
<HR></BLOCKQUOTE>
null -
Calling ORACLE Store Procedure with parameters in user define function
Hi everybody,
We have a scenario connecting Oracle DB thru JDBC adapter.
We have to call store procedure with input parameter and output parameter to retrieve data from DB. The implementation was made using JDBC adapter by building the correct XML message with EXECUTE action, and it works fine.
Now we need to use DB lookup within mapping. I wrote users define function with SELECT statement (using the JDBC adapter) and it works fine but I need to call store procedure in ORACLE instead of SELECT statement.
I found lot of examples concerning DB lookup but none of them explained how to write UDF calling store procedure in ORACLE with input and output parameters.
I am looking for an example.
Thanks in advance,
GigiI agree with you, but issue is we have lots of existing store procedure, which we need to call where damn required. I am sure those will be few but still i need to find out.
If you think you are going to get existing MS Stored Procedures or Oracle Packages that had nothing to do with the ORM previously to work that are not geared to do simple CRUD operations with the ORM and the database tables, you have a rude awakening
coming that's for sure. You had better look into using ADO.NET and Oracle Command objects and call those Oracle Packages by those means and use a datareader.
You could use the EF backdoor, call Oracle Command object and use the Packages, if that's even possible, just like you can use MS SQL Server Stored Procedures or in-line T-SQL via the EF backdoor.
That's about your best shot.
http://blogs.msdn.com/b/alexj/archive/2009/11/07/tip-41-how-to-execute-t-sql-directly-against-the-database.aspx -
Converting the iif function in MS Access97 to an user defined function in Oracle
Hi ,
I have a problem here we are working with Visual Basic 6.0(ADOs 2.5) with Oracle 8i release 2. we have some queries stored in the tables which contains the iif function of MS Access 97 do we have a similar built in function in Oracle which replaces this iif function of Ms Access 97.
we cannot use decode (built in function) of oracle b'cos it cannot be used in a where clause and we cannot write a user defined function also because it cannot be generalized for use b'cos sometimes we use
field names and sometimes values as expression in the iif functions
If anybody could suggest me some idea
please mail me at [email protected]
with best regards
Jai<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Jai:
Hi ,
I have a problem here we are working with Visual Basic 6.0(ADOs 2.5) with
Oracle 8i release 2. we have some queries stored in the tables which contains the iif function of MS Access 97 do we have a similar built in function in Oracle which replaces this iif function of Ms Access 97.we cannot use DECODE (built in function) of oracle b'cos it cannot be used in a where clause and we cannot write a user defined function also because it cannot be generalized for use b'cos sometimes we use field names and
sometimes string values as expression in the iif functions. is there any other built in function ? can anybody suggest me some idea
please mail me at [email protected]
regards
Jai<HR></BLOCKQUOTE>
Hi,
You still can use the seccond approach - with a udf IIF() that you place in a package and OVERLOAD it. See the documentation for limitations of Overloading
Overloading permits you to declare several functions with the same name but havind different behaviours depending on the number and type of the parameters.
George -
InvocationTargetException in User Defined Function in Oracle CEP
I was trying to use a UDF in my CQL query. But I got the following error:
An InvocationTargetException was encountered while attempting to register the user defined function
"mymod". The message was: null
My code snippet is bellow:
Bean:
package com.bea.wlevs.example.function;
import com.bea.wlevs.oracle.ci.event.CiMessages;
public class UpdateMessage {
public CiMessages addChannel(CiMessages cm, String channel){
System.out.println("I am in function");
cm.setChannel(channel);
return cm;
config.xml:
<processor>
<name>CiRuleEngine</name>
<rules>
<query id="filterRule"> <![CDATA[ select addChannel(*,"SMSData") from DCInputChannel[now] as dc ]]> </query>
</rules>
</processor>
content.xml:
<wlevs:processor id="CiRuleEngine">
<wlevs:listener ref="IntermediateChannel" />
<wlevs:function function-name="mymod" exec-method="addCHannel">
<bean class="com.bea.wlevs.example.function.UpdateMessage"/>
</wlevs:function>
</wlevs:processor>
Can any one help me to resolve this error?The asterisk * in invocation addChannel(*,"SMSData") does not mean the event object. This is the cause of the exception.
For your case, it's much easier to implement a userbean to do the insertion of the channel.
Thanks
Junger -
SQL User Defined Functions for performing statistical calculations
Hi!
I hope you can help. I just wasn’t sure where to go with this question, so I’m hoping you can at least point me in the right direction.
I’m writing a SQL Server stored procedure that returns information for a facility-wide scorecard-type report. The row and columns are going to be displayed in a SQL Server Reporting Services report.
Each row of information contains “Current Month” and “Previous Month” numbers and a variance column. Some rows may compare percentages, others whole numbers, others ratios, depending on the metric they’re measuring. For each row/metric the company has specified whether they want to see a t-test or a chi-squared statistical test to determine whether or not there was a statistically significant difference between the current month and the previous month.
My question is this: Do you know where I can find a set of already-written user defined functions to perform statistical calculations beyond the basic ones provided in SQL Server 2005? I’m not using Analysis Services, so what I’m looking for are real SQL User Defined Functions where I can just pass my data to the function and have it return the result within a stored procedure.
I’m aware that there may be some third-party statistical packages out there we could purchase, but that’s not what I’m looking for. And I’m not able to do anything like call Excel’s analysis pack functions from within my stored procedure. I’ve asked. They won’t let me do that. I just need to perform the calculation within the stored procedure and return the result.
Any suggestions? Is there a site where people are posting their SQL Server UDF’s to perform statistical functions? Or are you perhaps aware of something like a free add-in for SQL that will add statistical functions to those available in SQL? I just don’t want to have to write my own t-test function or my own chi-squared function if someone has already done it.
Thanks for your help in advance! Oh, and please let me know if this should have been posted in the TSQL forum instead. I wasn't entirely sure.
Karen GrubeSTATS_T_TEST_
docs.oracle.com/cd/B19306_01/server.102/b14200/functions157.htm
STATS_T_TEST_ONE: A one-sample t-test
STATS_T_TEST_PAIRED: A two-sample, paired t-test (also known as a crossed t-test)
STATS_T_TEST_INDEP: A t-test of two independent groups with the same variance (pooled variances)
STATS_T_TEST_INDEPU: A t-test of two independent groups with unequal variance (unpooled variances) -
Need help with user defined function
Hello SDN,
I need some help with a user-defined function. My source message contains multiple
generic records (1000 char string), and my target message is 1 header record,
then multiple generic records. See description of source and target messages below:
Source:
GenericRecordTable 1..unbounded
Row (1000 char string)
Target:
Field1 (char5)
Field2 (char5)
Field3 (char5)
IT_Data
GenericRecordTable 1..unbounded
Row (1000 char string)
Basically, what I need to do in my user defined funtion is to map the first record
in my source record to the 3 header fields, then map all of the rest of the records
(starting from line 2) into the GenericRecordTable.
Can someone please help me with the code for the user defined function(s) for this
mapping?
Thank you.hi,
Activities
1. To create a new user-defined function, in the data-flow editor, choose Create New Function (This
graphic is explained in the accompanying text), which is located on the lower left-hand side of the
screen. In the menu, choose Simple Function or Advanced Function.
2. In the window that appears, specify the attributes of the new function:
Name
Technical name of the function. The name is displayed in the function chooser and on the data-flow
object.
Description
Description of how the function is used.
Cache
Function type (see above)
Argument Count
In this table, you specify the number of input values the function can process, and name them. All
functions are of type String.
3. In the window that appears, you can create Java source code:
a. You can import Java packages to your methods from the Imports input field, by specifying them
separated by a comma or semi-colon:
You do not need to import the packages java.lang., java.util., java.io., and java.lang.reflect. since
all message mappings require these packages and therefore import them. You should be able to
access standard JDK and J2EE packages of the SAP Web Application Server by simply specifying the
package under Import. In other words, you do not have to import it as an archive into the Integration
Repository. You can also access classes of the SAP XML Toolkit, the SAP Java Connector, and the
SAP Logging Service (see also: Runtime Environment (Java-Mappings)).
In addition to the standard packages, you can also specify Java packages that you have imported as
archives and that are located in the same, or in an underlying software component version as the
message mapping.
b. Create your Java source text in the editor window or copy source text from another editor.
4. Confirm with Save and Close.
5. User-defined functions are limited to the message mapping in which you created the function. To
save the new function, save the message mapping.
6. To test the function, use the test environment.
The new function is now visible in the User-Defined function category. When you select this category,
a corresponding button is displayed in the function chooser pushbutton bar. To edit, delete, or add the
function to the data-flow editor, choose the arrow next to the button and select from the list box
displayed.
http://help.sap.com/saphelp_nw04/helpdata/en/d9/718e40496f6f1de10000000a1550b0/content.htm
http://java.sun.com/j2se/1.5.0/docs/api/
/people/krishna.moorthyp/blog/2006/07/29/documentation-html-editor-in-xi
/people/sap.user72/blog/2006/02/06/xi-mapping-tool-exports
http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
UDF -
http://help.sap.com/saphelp_nw04/helpdata/en/22/e127f28b572243b4324879c6bf05a0/content.htm
Regards -
Error in conditional map using User Defined Function
All,
In my mapping I basically have a user defined function that returns the filename of my inbound file from the adapter-specific message attributes (file adapter). I know this is coded properly because if I simply assign this function to my destination field I can see the filename in the payload XML.
However if I conditionally check that returned value using if,then,else I get an error message stating:
"During the application mapping com/sap/xi/tf/_MaterialData2ZcustProdMastMulti_ a com.sap.aii.utilxi.misc.api.BaseRuntimeException was thrown: RuntimeException in Message-Mapping transformation"
Essentially in my if I'm checking if the value returned by my user defined function is equal to the constant "SOMECONSTANT" then I'm setting my destination field to some other constant value. Otherwise it's equal to a different constant value.
Any thoughts?Claus,
Thanks for the help. I actually had figured the problem out on my own. Sorry for not updating the thread sooner. What happened was this (as I suspected it wasn't related to my user defined function). For the newbies out there (of which I'm one) the problem was I was comparing strings in the graphical mapping tool using the Boolean "EQUALS" rather than the Text "EQUALSS".
Can you give yourself points for solving -
How can I use Seeburger java functions on SAP XI's user defined functions?
Hi All,
As my title implies; how can I use Seeburger java functions on SAP XI's user defined functions? I've tried searching over the net in tutorials regarding this topic but I failed to find one; can someone provide me information regarding my question? thanks very much.
best regards,
MikeHi Mike !
You should check your documentation about which java classes you need to reference in the "import" section of your UDF. And also deploy the java classes into the java stack or include them as a imported archive in integration repository...it should be stated in the seeburger documentation.
What kind of functions are you trying to use?
Regards,
Matias. -
Getting error while using user-defined function in transform activity
Hi
I designed one user-defined function to add 2 nos following the
link:http://docs.oracle.com/cd/E16764_01/integration.1111/e10224/bp_xslt_mpr.htm .
Under this i followed the portion creating user-defined function.
After deploying,i'm getting an error stating:"<summary>
An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc("xsl/Transformation_1.xsl", $inputVariable.payload).
</summary>
<detail>
XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc("xsl/Transformation_1.xsl", $inputVariable.payload).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: oramds:/deployed-composites/PO/HelloWorld_rev1.0/xsl/Transformation_1.xsl<Line 6, Column 104>: XML-22045: (Error) Extension function error: Class not found '
Missing class: addition.add
can anybody help me in this regard
Thanks
AvinashDid you copy the jar file of your java classes to MIDDLEWARE_Home/user_projects/domains/soa_domain/lib?
http://georgie-soablog.blogspot.com/2010/06/soasuite-11g-implement-user-defined.html
hope this helps
Maybe you are looking for
-
Is there anyway to turn off the Group MMS texting? I want to send a mass text but don't want every person to see every other person's response. I am getting ready to have a baby and want to send one text out to friends and family when the baby comes
-
Error in sequence jobs run in backround
Hi All, I am getting problem while submitting the bacground in sequence. i need to execute the jobs in loop. i have put the logic loop at (no. of jobs) CALL FUNCTION 'JOB_OPEN' EXPORTING jobname = l_f_jobname SDLSTRTDT
-
From N97 to HTC hero - Move contacts
I'm returning my N97 today to get a HTC hero. My mails, calendar, pictures, is no problem. But how do I transfer ALL my contacts? I can not use phone to phone Bluetooth, as I won't have both phones and the same time. I need to move the contacts to my
-
Clear Customer with cheque reference at BRS
Hi, At the time of BRS FF67, can we clear Customer account with Cheque as reference? If so how the system will findout the particular Open Item? i mean, how the system will know that this cheque is to this particular Open Item, and clear it. I know w
-
Windows 7 explorer run prompt window position on screen varies
whether I use the mouse via start/run or <windows key>+R the small window that appears to await input from me for the run command line dpes not consistently appear in the lower left above the windows start globe (forgive inaccurate nomenclature). Ge