User Defined flags in ODI
Hi Friends ,
What is User Defined Flags in ODI like UD1, UD2, UD3, UD4, UD5, UD6, UD7, UD8, UD9, UD10
and how we can use this in Interface level....
This are used for modification of KM and generaly used in option to perform some modified action defined on the sellected columns
Similar Messages
-
Calling PL/SQL user defined functions from ODI Constraints
Hi All,
We are trying to call user defined PL/SQL functions from ODI. We are able to call them from ODI's User functions. But when we are trying to call them from ODI Constraints under Models, it is throwing an error 'ORA-00920 invalid relational operator'. Kindly let me know if anyone has faced the same issue and got the resolution for the same. Thanks in Advance.
Regards,
Abhishek SharmaHi Ace,
Thanks for the response, the same error was coming in operator also.
I am able to call PL?SQL user defined functions from ODI Constraints. We have to first call ODI User functions from the ODI constraints as we cant call PL/SQL function (compiled in database) directly.
From the ODI User functions, we can then call the PL/SQL functions.
Please reach out to me if you need further details reg this. -
How to import User-Defined Libraries to ODI?
Hi All,
I am trying to execute Java programs using ODI. There are many User-Defined classes imported in the programs.
I have these User-Defined classes in JAR form.
My ODI is setup on a linux system.
So, where should these JAR files be uploaded in the system so that it can be imported in the Java programs?
Please help me in resolving this issue.
ThanksHi Sutirtha,
My ODI is installed on a linux system and I am using it on my desktop through a remote desktop connection.
I connect to it using Tarantella account. Here I have to create a session and a view to use the ODI.
So, when I am looking in the linux system for the <ODI_HOME>/oracledi/drivers folder, I am finding a lot of them.
So, Please help me in locating the exact one where I need to put the JAR files.
Thanks -
Passing input parameter to User Defined Procedures in ODI
Hi
I have to develop a procedure with an update query as follows
Update Rec_Count set status as 'Y' where TableName = 'Name of the table'
Here the 'name of the table' should be sent as input parameter while executing the package and this has 9 values.
Kindly help me resolve this issue.
ThanksHi,
Create a variable
eg :- VarName
and your query should be
Update Rec_Count set status as 'Y' where TableName = '#VarName'
Steps in package:
step 1 :-
refresh the variable ,
or assign the variable while executing the package.
Step 2
Your procedure
This will take the variable value dynamically while executing
Regards,
Rathish
Edited by: Rathish on Aug 18, 2009 3:38 PM -
How to use pl/sql code as ODI user defined function
Hi All,
i have a pl/sql code and i want to create ODI user defined function using this code .
please find the pl/sql code below:
============================
declare
v_no_of_duplicate_rec number := 0;
begin
select count(*)
into v_no_of_duplicate_rec
from ( select 1
from temp_pre_selections
group by svb_number, selection_id
having count(*) > 1);
if v_no_of_duplicate_rec = 0 then
return 'N';
else
return 'Y';
end if;
end if;
==========================
please help me how to achieve the same .
Thanks
Vinod2 ways:
a. implement logic in odi function directly: getCount, Oracle implementation:
select case count(1) when 0 then 'N' else 'Y' end
from hr.employees
when you use this function to refresh a variable, the refresh statement should only be getCount, you shoueld not write select getCount from dual, otherwise it will become
select select .... from ... from dual
b. if your logic is complex, I suggest to write function directly in your database, then call this function in your ODI function
eg:
CREATE OR REPLACE FUNCTION hr.test RETURN varchar2 IS
tmpVar NUMBER;
BEGIN
select count(1) into tmpVar from hr.employees;
if tmpVar=0 then
return 'N';
else
return 'Y';
end if;
END test;
then create a ODI function, Oracle implementation is
hr.test
in your variable refresh statement, you can write select getCount from dual
if you use the odi function in other locations expect for refreshing variable, the idea is similar -
Error when use User-Defined Function
I just create User defined function "getfilename" and I put there:
"DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
String ourSourceFileName = conf.get(key);
return ourSourceFileName; ".
But In test mapping I have worning:
"Runtime exception during processing target field mapping /ns1:Z_KBFI_INPUT_FILE/IS_IFILE/FILE_NAME. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._KBFIMsgMapping_ method get_fname$[com.sap.aii.mappingtool.tf3.rt.Context@37d4662c] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns1:Z_KBFI_INPUT_FILE/IS_IFILE/FILE_NAME. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._KBFIMsgMapping_ method get_fname$[com.sap.aii.mappingtool.tf3.rt.Context@37d4662c] at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:284) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)...."
And in RWB in Communication Channel Monitoring I can not see file name in the payload.
Maby I do something wrong, please tell me.my source file 200610.txt is like this:
HR 0610 061030 061021
DR 03 C 0610 820114 00010111 0000015000 PLN descr...
DR 03 D 0610 403201 00010111 0000015000 PLN descr..
TR 0000000002
Then in sxmb_moni in inbound message (payload) I have:
<?xml version="1.0" encoding="utf-8" ?>
- <ns:KBFIMsgTypeSource xmlns:ns="http://p4.org/xi/KBFI/Interface">
- <FIRecordset>
- <HeaderLine>
<LineKey>HR</LineKey>
<PostingPeriod>0610</PostingPeriod>
<PostingEndDate>061030</PostingEndDate>
<PostingDate>061021</PostingDate>
</HeaderLine>
- <PostingLine>
<LineKey>DR</LineKey>
<ServerID>03</ServerID>
<DCFlag>C</DCFlag>
<PostingPeriod>0610</PostingPeriod>
<GLAccount>820114</GLAccount>
<SubAccount>00010111</SubAccount>
<NetValue>0000015000</NetValue>
<Currency>PLN</Currency>
<Description>descr...</Description>
</PostingLine>
- <PostingLine>
<LineKey>DR</LineKey>
<ServerID>03</ServerID>
<DCFlag>D</DCFlag>
<PostingPeriod>0610</PostingPeriod>
<GLAccount>403201</GLAccount>
<SubAccount>00010111</SubAccount>
<NetValue>0000015000</NetValue>
<Currency>PLN</Currency>
<Description>descr..</Description>
</PostingLine>
</FIRecordset>
</ns:KBFIMsgTypeSource>
But I don't have payload for Response (black and white flag).
In DynamicConfiguration i have:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Response
-->
- <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="SourceFileSize">141</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileType">txt</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="SourceFileTimestamp">20061212T121622Z</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileEncoding">ISO646-US</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">200610.txt</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/File" name="Directory">/usr/sap/PXD/put/archive</SAP:Record>
</SAP:DynamicConfiguration> -
Using a User Defined Function as a constraint within a temporary table.
Hello,
I am trying to create a temp table that uses a UDF in a constraint. I'm getting the following error message
Msg 4121, Level 16, State 1, Line 1
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.CK_LoseTeamSportExists", or the name is ambiguous.
I've tested the function and it works in other contexts. Any idea? All code below:
Thanks,
- Bryon
create function dbo.CK_LoseTeamSportExists (@loseteam int, @sportid int)
returns bit
as
begin
declare @return bit
if exists
select TeamID, sportid from Link_TeamSport
where
TeamID = @loseteam
and
SportID = @sportid
set @return = 1
else set @return = 0
return @return
end
go
create table #check
SportID int
,WinTeamID int
,LoseTeamID int
,check
(dbo.CK_LoseTeamSportExists(LoseTeamID,SportID) = 1)Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should
use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect.
This is minimal polite behavior on SQL forums.
>> I am trying to create a temp table that uses a UDF in a constraint. <<
You do not understand how SQL or any declarative language works!
We do not use UDFs (procedural programming)
We do not use bit flags (assembly language).
We do not use temp tables (mag tape files).
We do not use integer as identifiers (what math do you do on them?)
Your silly “Link_TeamSport” implies a pointer chain; we have no links in SQL. Where is the DDL?
Constraints are always predicates in any declarative language.
Do you know why you have to create a local variable to pass the non-relational flag back to the calling environment? FORTRAN I and II! These early languages has to use hardware registers in the first IBM computers to return results. In your ignorance, you mimic
them!
We do not use if-then-else control flow in any declarative language. We have CASE expressions that we put where you have a local variable getting an assignment.
I see you also put the comma at the start of the line. We did that with punch cards, so we could re-use them 50 years ago.
In SQL, we would use REFERENCES to assure a team reference exists. We use names for teams because they are entities, not quantities:
CREATE TABLE Game_Results
(sport_name CHAR(10) NOT NULL PRIMARY KEY,
win_team_name CHAR(12) NOT NULL
REFERENCES Teams(team_name)
ON DELETE CASCADE,
lose_team_name CHAR(12) NOT NULL
REFERENCES Teams(team_name)
ON DELETE CASCADE,
CHECK (win_team_name <> lose_team_name));
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL -
How can I use User-Defined Aggregate Functions in Timesten 11? such as ODCI
Hi
we are using Timesten 11 version and as per the documentation, it doesn't support User-Defined Aggregate Functions.
So we are looking for alternatives to do it. Could you please provide your expert voice on this.
Thanks a lot.
As the following:
create or replace type strcat_type as object (
cat_string varchar2(32767),
static function ODCIAggregateInitialize(cs_ctx In Out strcat_type) return number,
member function ODCIAggregateIterate(self In Out strcat_type,value in varchar2) return number,
member function ODCIAggregateMerge(self In Out strcat_type,ctx2 In Out strcat_type) return number,
member function ODCIAggregateTerminate(self In Out strcat_type,returnValue Out varchar2,flags in number) return
number
How can I use User-Defined Aggregate Functions in Timesten 11? such as ODCIAggregateInitialize ?Dear user6258915,
You absolutely right, TimesTen doesnt support object types (http://docs.oracle.com/cd/E13085_01/doc/timesten.1121/e13076/plsqldiffs.htm) and User-Defined Aggregate Functions.
Is it crucial for your application? Could you rewrite this functionality by using standart SQL or PL/SQL?
Best regards,
Gennady -
Can we show some user defined message while cube loading in OBIEE
Hi All,
Currently we are building OBIEE dashboards from Essbase ASO Cube as datasource.
During Essbase Cube loading ,Essbase will "Disable all Administrative Commands".In this mean time,When users are trying to run the dashboards,OBIEE will thorws severe error.
Can we dispaly some user defined message something like "Cube is loading.Please wait...." or any other alternative.
Time taken to load the cube is 1hr.Please suggest
Thanks,
SatyaBYes, You can better try replacing the whole OBIEE dashboard with a custom message. Whenver the load happens...you shud trigger or set a flag value to 'Y'. Using guided navigation when Flag value is matched to Y...right a JS to replace the whole dashboard.
[html]
[head]
[script type="text/javascript"]var strStatus="@1";
if(strStatus =='Y')
location.replace('saw.dll?PortalPages&_scid=in6lPJnWWNk&PortalPath=/shared/Framework/_portal/Cube%20Status%20&Page=Cube%20Status');
[script]
[head]
Replace square bracket with curly brackets in above replace code..
BTW, you shud mark the previous post on Implicit fact. Follow https://forums.oracle.com/forums/ann.jspa?annID=939 -
I am using Portal 3.0.6 in Sun SunOS 5.8. The site will be running in https mode. As everybody knows, 443 is the default port number for ssl mode. I setup the httpd.conf to 443. No problem. I ran ssodatan to relate Login Server to Portal - I had to specify 443 at the end of URL in ssodatan syntax. Otherwise, I got "Error:You cannot login because there is no configuration information stored in the enabler configuration table. (WWC-41439)" both in Netscape navigator and MS Internet Explorer.
I now am able to log in Portal site. But, the problem happens just after loggin in. With Navigator I don't get any problems. But, IE gives me "Error: Unexpected error encountered in wwsec_app_priv.process_signon (User-Defined Exception) (WWC-41417)". I guess this happens because of how IE works with https. It takes 443 off from URL in https mode. The portal is unable to match the url and what it has in wwsec_enabler_config_info$ which has 443. When I tested with 444 as port number. It worked! Putting a port number in URL will be cumbersome. That's why I am trying with 443.
I tried also with ssodatax to add an additional entry for without 443 as specified in a document "Oracle9ias Portal configuration options" page 30. Ssodatax has a bug so it updates existing entry, too. I had to update it back to its original value. It's fine. But, this time another error comes up. "WWC-00000". I don't see any solution for this.
nullWhen a new user is logging on for the first time, the portal adds them to the AUTHENTICATED_USERS group under the portal's group container. In your case, for some users, this is apparently running into some problem.
To debug this, try turning on additional logging on the OID server and attempt logging in as these users, and see what is reported.
You should enable the following debug flags:
Search Filter Processing
Access Control List Processing
Status Log Connections/Operations/Results -
Oracle 11g AQ : problem enqueue user-defined type with varchar2 attribute
Hello.
I have a problem enqueuing a user-defined type to the queue on Oracle 10g.
I'm using jdbc driver (ojdbc5.jar, version 11.1.0.6.0) as they provide oracle.jdbc.aq package.
The type is following:
CREATE OR REPLACE TYPE FIXED_T5 AS OBJECT
(id integer,
label varchar2(100),
code integer,
today date
)I have created a java class for this type with jpub utility supplied with oracle 11g client package:
jpub -user=scott/tger -url=jdbc:oracle:thin:@host:sid-sql=FIXED_T5:ru.invito.FixedType -compile=falseIt generated FixedType.java and FixedTypeRef.java files. Don't understand why i need the latter (FixedTypeRef).
Then in test app:
package ru.invito;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Properties;
import java.util.UUID;
import junit.framework.TestCase;
import oracle.jdbc.aq.AQAgent;
import oracle.jdbc.aq.AQEnqueueOptions;
import oracle.jdbc.aq.AQFactory;
import oracle.jdbc.aq.AQMessage;
import oracle.jdbc.aq.AQMessageProperties;
import oracle.jdbc.aq.AQEnqueueOptions.DeliveryMode;
import oracle.jdbc.aq.AQEnqueueOptions.VisibilityOption;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleDriver;
import oracle.sql.Datum;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class AqTest extends TestCase {
protected Log logger = LogFactory.getLog(getClass());
public void testEnqueue() throws Exception {
OracleDriver dr = new OracleDriver();
Properties prop = new Properties();
prop.setProperty("user", Config.USERNAME);
prop.setProperty("password", Config.PASSWORD);
OracleConnection connection = (OracleConnection) dr.connect(Config.JDBC_URL, prop);
assertNotNull(connection);
connection.setAutoCommit(false);
enqueueMessage(connection, "INVITO.FIXED_T5Q", null);
connection.commit();
private void enqueueMessage(OracleConnection conn, String queueName, AQAgent[] recipients) throws SQLException,
IOException {
logger.debug("----------- Enqueue start ------------");
AQMessageProperties props = makeProps(queueName);
AQMessage mesg = AQFactory.createAQMessage(props);
String msqText = String.format("Hello, %s!", queueName);
FixedType data = createData(36, msqText);
Datum d = data.toDatum(conn);
STRUCT s = (STRUCT) d;
debugStruct("s", s);
String toIdStr = byteBufferToHexString(s.getDescriptor().getOracleTypeADT().getTOID(), 20);
logger.debug("s.toIdStr: " + toIdStr);
StructDescriptor sd = StructDescriptor.createDescriptor("INVITO.FIXED_T5", conn);
logger.debug("sd.toXMLString(): " + sd.toXMLString());
mesg.setPayload(s);
AQEnqueueOptions opt = makeEnqueueOptions();
logger.debug("sending............");
// execute the actual enqueue operation:
conn.enqueue(queueName, opt, mesg);
debugMessageId(mesg);
logger.debug("----------- Enqueue done ------------");
private void debugMessageId(AQMessage mesg) throws SQLException {
byte[] mesgId = mesg.getMessageId();
if (mesgId == null) {
throw new IllegalStateException("message id is NULL");
String mesgIdStr = byteBufferToHexString(mesgId, 20);
logger.debug("Message ID from enqueue call: " + mesgIdStr);
* @return
* @throws SQLException
private FixedType createData(int ID, String label) throws SQLException {
FixedType data = new FixedType();
data._struct.setNChar(1);// initializes the flag for 'label' field
data.setId(ID);
data.setLabel(label);
data.setCode(1);
Date today = new Date();
data.setToday(new Timestamp(today.getTime()));
return data;
* @param string
* @param s
* @throws SQLException
private void debugStruct(String string, STRUCT s) throws SQLException {
logger.debug(s + ".debugString(): " + s.debugString());
logger.debug(s + "s.dump(): " + s.dump());
* @return
* @throws SQLException
private AQAgent makeAgent() throws SQLException {
AQAgent ag = AQFactory.createAQAgent();
ag.setName("AQ_TEST");
String agentAddress = null;
try {
agentAddress = InetAddress.getLocalHost().getHostAddress();
catch (UnknownHostException e) {
logger.error("cannot resolve localhost ip address. will not set it as AQ Agent address");
agentAddress = "NA";
ag.setAddress(agentAddress);
return ag;
private AQMessageProperties makeProps(String queueName) throws SQLException {
final String EXCEPTION_Q_TEMPLATE = "AQ$_%sT_E";
final int DEFAULT_DELAY = 0;
final int DEFAULT_EXPIRATION = -1;
final int DEFAULT_PRIORITY = 0;
AQMessageProperties propeties = AQFactory.createAQMessageProperties();
propeties.setCorrelation(UUID.randomUUID().toString());
propeties.setDelay(DEFAULT_DELAY);
propeties.setExceptionQueue(String.format(EXCEPTION_Q_TEMPLATE, queueName));
propeties.setExpiration(DEFAULT_EXPIRATION);
propeties.setPriority(DEFAULT_PRIORITY);
// propeties.setRecipientList(null);//should not set
propeties.setSender(makeAgent());
return propeties;
* @return
* @throws SQLException
private AQEnqueueOptions makeEnqueueOptions() throws SQLException {
AQEnqueueOptions opt = new AQEnqueueOptions();
opt.setRetrieveMessageId(true);
// these are the default settings (if none specified)
opt.setDeliveryMode(DeliveryMode.PERSISTENT);
opt.setTransformation(null);
opt.setVisibility(VisibilityOption.ON_COMMIT);
return opt;
* Form the AQ reference
* @param buffer
* @param maxNbOfBytes
* @return
private static final String byteBufferToHexString(byte[] buffer, int maxNbOfBytes) {
if (buffer == null)
return null;
int offset = 0;
StringBuffer sb = new StringBuffer();
while (offset < buffer.length && offset < maxNbOfBytes) {
String hexrep = Integer.toHexString((int) buffer[offset] & 0xFF);
if (hexrep.length() == 1)
hexrep = "0" + hexrep;
sb.append(hexrep);
offset++;
String ret = sb.toString();
return ret;
}The output is following:
[main] 2008-07-03 19:09:49,863 DEBUG [ru.invito.AqTest] - ----------- Enqueue start ------------
[main] 2008-07-03 19:09:50,348 DEBUG [ru.invito.AqTest] - [email protected](): name = INVITO.FIXED_T5 length = 4 attribute[0] = 36 attribute[1] = Hell
o, INVITO.FIXED_T5Q! attribute[2] = 1 attribute[3] = 2008-07-03 19:09:49.0
[main] 2008-07-03 19:09:50,363 DEBUG [ru.invito.AqTest] - [email protected](): name = INVITO.FIXED_T5
length = 4
ID = 36
LABEL = Hello, INVITO.FIXED_T5Q!
CODE = 1
TODAY = 2008-07-03 19:09:49.0
[main] 2008-07-03 19:09:50,363 DEBUG [ru.invito.AqTest] - s.toIdStr: 507ccce5b6e9f572e040007f01007203
[main] 2008-07-03 19:09:50,363 DEBUG [ru.invito.AqTest] - sd.toXMLString(): <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StructDescriptor sqlName="INVITO.FIXED_T5" >
<OracleTypeADT sqlName="INVITO.FIXED_T5" typecode="0" tds_version="1"
is_embedded="false" is_top_level="true" is_upt="false" finalType="true" subtype="false">
<attributes>
<attribute name="ID" type="INTEGER" >
<OracleType typecode="2" />
</attribute>
<attribute name="LABEL" type="VARCHAR2" >
<OracleType typecode="12" />
</attribute>
<attribute name="CODE" type="INTEGER" >
<OracleType typecode="2" />
</attribute>
<attribute name="TODAY" type="DATE" >
<OracleType typecode="0" />
</attribute>
</attributes>
</OracleTypeADT>
</StructDescriptor>
[main] 2008-07-03 19:09:50,379 DEBUG [ru.invito.AqTest] - sending............
[main] 2008-07-03 19:09:50,395 DEBUG [ru.invito.AqTest] - Message ID from enqueue call: 511ff143bd4fa536e040007f01003192
[main] 2008-07-03 19:09:50,395 DEBUG [ru.invito.AqTest] - ----------- Enqueue done ------------But when dequeueing the 'label' attribute is lost:
DECLARE
dequeue_options DBMS_AQ.dequeue_options_t;
message_properties DBMS_AQ.message_properties_t;
message_handle RAW(16);
message fixed_t5;
BEGIN
dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE;
DBMS_AQ.DEQUEUE(
queue_name => 'fixed_t5q',
dequeue_options => dequeue_options,
message_properties => message_properties,
payload => message,
msgid => message_handle);
DBMS_OUTPUT.PUT_LINE('ID : '||message.id);
DBMS_OUTPUT.PUT_LINE('Label: '||message.label);
DBMS_OUTPUT.PUT_LINE('Code : '||message.code);
DBMS_OUTPUT.PUT_LINE('Today: '||message.today);
COMMIT;
END;
ID : 36
Label:
Code : 1
Today: 03.07.08
Could anyone tell me what is wrong with the setup/code?
Why 'label' not saved in queue, though i saw it is not empty in STRUCT?Thank you for the reply!
I have enqueued:
[main] 2008-07-04 15:30:30,639 DEBUG [ru.invito.UserDefinedTypeAqTest$1] - [email protected](): name = INVITO.FIXED_T5
length = 4
ID = 41
LABEL = Hello, INVITO.FIXED_T5Q!
CODE = 1
TODAY = 2008-07-04 15:30:30.0and in table (select * from FIXED_T5QT) the 'label' is blank:
Q_NAME FIXED_T5Q
MSGID 51310809B5EA3728E040007F01000C79
CORRID b8f38fd3-4fa6-4e0f-85d1-2440d02d655e
PRIORITY 0
STATE 0
DELAY
EXPIRATION
TIME_MANAGER_INFO
LOCAL_ORDER_NO 0
CHAIN_NO 0
CSCN 0
DSCN 0
ENQ_TIME 04.07.2008 15:28:44
ENQ_UID INVITO
ENQ_TID 4012
DEQ_TIME
DEQ_UID
DEQ_TID
RETRY_COUNT 0
EXCEPTION_QSCHEMA AQ$_INVITO
EXCEPTION_QUEUE FIXED_T5QT_E
STEP_NO 0
RECIPIENT_KEY 0
DEQUEUE_MSGID
SENDER_NAME AQ_TEST
SENDER_ADDRESS 10.1.1.137
SENDER_PROTOCOL
USER_DATA.ID 41
USER_DATA.LABEL
USER_DATA.CODE 1
USER_DATA.TODAY 04.07.2008 15:30:30I must point to a strange thing: when the FixedType instance is created (via new operator) and then the setLabel("....") called as:
FixedType data = new FixedType();
// hack: proper initialization for 'label' field
data._struct.setNChar(1);
data.setId(ID);
data.setLabel(label);
data.setCode(1);
Date today = new Date();
data.setToday(new Timestamp(today.getTime()));
Datum d = data.toDatum(connection);
STRUCT s = (STRUCT) d;
logger.debug(s + ".debugString(): " + s.debugString());
logger.debug(s + ".dump(): " + s.dump());and if i comment line (data._struct.setNChar(1);) the debug messages for created STRUCT also shows empty value for label.
But if i explicitly call data._struct.setNChar(1) then debug contains the label i defined in call to the setLabel method. -
Problems with After Report trigger Updating using User-defined functions
Hi,
I have a report which uses SQL to select data that uses a user-defined stored function in the WHERE clause.
I use the same SQL in the After Report trigger with and UPDATE statement to flag all records selected as being run.
Data is being selected by the report no problem, but the records are not being updated. In a test, If I remove the conditions using the user functions, the records update as expected. In Live conditions I must have these conditions in the script.
I originally tried putting the UPDATE in a formual column, but that would not fire on records where that page was not paged through (or paged to end) in the Runtime Previewer.
Can anyone advise?In case anyone is interested.
The issue was that the stored functions have roles assigned for security.
PL/SQL for After Report doesn't seem to recognise the roles having been assigned for the report, so the implicit cursor update/select I had wouldn't work.
I changed the SELECT into an explicit CURSOR and introduced a FOR LOOP, keeping the UPDATE as an implicit statement.
I know see this was more of a PL/SQL issues than a report one, but such is life. So if anyone feels the urge to move it to the PL/SQL forum, then feel free!!
Have a problem free afternoon. :-) -
User-Defined Aggregate Function in oracle
Somebody knows if in oracle 10g is possible to create a User-Defined Aggregate Function?
Sometingh like my_sum, that aggregate the values in a way that i want...
select manager, my_sum(salary)
group by manager
In internet i've found rellay notingh for oracle 10g...can somebody help me? Thank's in advance!Thank's to everybody!!! I've made my custom function sum_distinct
create or replace type AggregateCD as object
( nb number,
ListOfDistinctValue clob,
static function ODCIAggregateInitialize(sctx IN OUT AggregateCD) return number,
member function ODCIAggregateIterate(self IN OUT AggregateCD, value IN VARCHAR2) return number,
member function ODCIAggregateTerminate(self IN AggregateCD, returnValue OUT number, flags IN number) return number,
member function ODCIAggregateMerge(self IN OUT AggregateCD, ctx2 IN AggregateCD) return number
create or replace type body AggregateCD is
static function ODCIAggregateInitialize(sctx IN OUT AggregateCD) return number is
begin
sctx := AggregateCD(0,null);
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT AggregateCD, value IN VARCHAR2) return number is
ListOfValue CLOB:=self.ListOfDistinctValue ;
begin
self.nb:=self.nb+to_number(substr(value , INSTR(value, ';', 1, 1)+1 ,length(value)));
return ODCIConst.Success;
end;
member function ODCIAggregateTerminate(self IN AggregateCD, returnValue OUT number, flags IN number) return number is
begin
returnValue := self.nb;
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self IN OUT AggregateCD, ctx2 IN AggregateCD) return number is
begin
self.nb := ctx2.nb;
return ODCIConst.Success;
end;
end;
CREATE OR REPLACE FUNCTION sum_distinct (input VARCHAR2) RETURN number
PARALLEL_ENABLE AGGREGATE USING AggregateCD;you can use so:
select sum_distinct(distinct t.primary_key||';'||t.import)
from table1 t, table2_with_bad_join
it's the same of
select sum(t.import)
from table 1 -
Hi,
would anyone know if there is a limit of the number of user defined fields that can be addeded to SAP Business One (2004A on SQL server 2000)?
I think there is (in a diffrenet way). It looks like there is a maximmum byte size - 8060.
I have the following user fields already in the business partner master data screen .
A - alphanumeric size = 50
B - alphanumeric size = 20
C - alphanumeric size = 20
D - alphanumeric size = 20
E - alphanumeric size = 254
If I try to change B to size 254 ,This is the error message I get.
"[CUFD] [Microsoft][ODBC SQL Server Driver][SQL Server] Warnning: The table 'ACRD' has been created but it's maximum row size 'User Fieds - Descr' (8522) exeeds the maximum number of bytes per row (8060)..."
there is nothig else wqrong with the field exept I cannot make it size 254 (I can if I delete the field E though), so I definitely think it is SAP restricting the size. SQL Server does not have this size restriction. I can manually go and change the size using SQL Server Enterprise manager for example.
I have managed to change the size directly on ACRD, and
CUFD but dont thinks this is a very approprite way of handilng it.
Is this an undocumented restriction/feature in SAP or have I missed reading about this ?
Thanks in advance,
Indika.Hi Spiros,
I hope you are right. But I have experiences this with many atleast 3 other seperate installations. They were all SQL Server, ranging from Enterprise versio, to Developer version to standard.
However I can directly change the size in SQL Server without an issue as I mentioned. This proves that this not an issue with SQL Server. Could it be some sort of a flag in the SAP? I get this on the SAP US demo company for example.
If anyone else had the problem please do respond.
Thanks,
Indika -
User defined Catalog type u0093Su0094 - Valuation code field missing
Hi Quality Experts,
I have created a user defined catalog type in customization coping the catalog type 3.
This is required for authorization purposes.
Transaction Code : QS51.
For system defined catalog type 3, in QS51 all fields are visible.
Hence selection set can be created.
For user defined catalog type S which is a copy of 3,
for the same transaction code QS51 many field are hidden.
Hence selection set can not be created.
15 Columns are existing.
S.No System defined Catalog Type "3". User defined Catalog Type "S". Remarks
1 Code Grouop Code Grouop OK
2 Code Code OK
3 Short Text for Code Short Text for Code OK
4 Long Text for Code Long Text for Code OK
5 Valuation Code MISSING THIS FIELD IS MISSING
6 Quality Score MISSING THIS FIELD IS MISSING
7 Posting Propasal UD MISSING THIS FIELD IS MISSING
8 Long Term Char. MISSING THIS FIELD IS MISSING
9 Stock Screen
Backgr. MISSING THIS FIELD IS MISSING
10 Follow up action MISSING THIS FIELD IS MISSING
11 Short Text MISSING THIS FIELD IS MISSING
12 Changed By Changed By OK
13 Changed On Changed On OK
14 Created By Created By OK
15 Created On Created On OK
===========================================================
Total 7 fields are missing.
SAP Version : SAP ECC 6.0
Please guide.
With Best Regards,
Raghu Sharma.Hi
when you have created new Catalog type by copying 3, did you check whether Selected Sets is flagged in the configuration?
regards
Srinivas
Maybe you are looking for
-
Ipod touch 5th gen tilt function not working
Hi I recently got a replacement (from apple) for my Ipod Touch 5th Gen 64gb due to the home button being broken. It is running the latest software which I believe is IOS 8.1.1 Note - other than the broken button I had absolutely no issues with my ol
-
Help: question on send XML file from java client to java server
Hi, I am now to Java, and now I am going to set up a simple network in the lab. I have created a random array of data and transferred to XML file on my client. Now, I would like to send it to the server. I am wondering how I can put the XML file into
-
Issue with CS3 Bridge and Flash 10?
Im not finding any help and Im trying to trouble shoot this myself, since I updated to Firefox 3.0.8 apparently the latest version of flash was updated at the same time? My computer shows Flash 10.0.22.87 (running XP) as being installed in programs b
-
Mouse position inside a movieclip area
hey i am trying to solve this problem: how can i test the position of the mouse inside the area of a specific movieclip WITHOUT using rollover and rollout events? the movieclip is the irregular shape (star) i need to do some action according to the p
-
Requirement: Insp lot of self Certified material should not get skipped
Hi Gurus following is req pls suggest me Requirement: Insp lot of self Certified material should not get skipped if there is a change in Material Revision. As of now Auto Usage Decision takes place on Self certified material Lots. This happens even