Language used in Knowledge Module
Hi all,
Can you please tell me what is the language used in the code for all the knowledge modules
reagrds,
Sourav
Hi Sourav,
Basically Java.
odiRef is the class and followed by the method with parameters.
Example,
<%=odiRef.getSession("SESS_NAME")%>
Where,
odiRef is the class.
getSession is a method/fuction which accept one parameter "SESS_NAME".
The <%= and %> is the tag which will be interpreted by Agent and converted in to SQL codes at run time.
Thanks,
Guru
Similar Messages
-
Hi
I am facing an issue on knowledge module performance.
Source DB is Oracle 11g and Target DB is Oralce 11g, and Iam using below knowledge module and my interface execution taking 34 seconds to perform 27868 records transfermation from source to target
ODI 11g (11.1.1.6.0)
OS: Windows XP
CKM Oracle
LKM Oracle to Oracle (Merge)
IKM Oracle Incremental Update(DBLINK)
I have created DBLINK and it is working fine.
My requirement is,
I need to reduce the interface execution time of 34 to 10 seconds.
Please help me on performance tuning on IKM Oracle Incremental Update(DBLINK) KM
Thanks in advance
Regards,
PhanikanthHi
Thank you for your response.
I have tried with removed with flow control true and test
with minus and flow control: my inter face taking 33 seconds to transfer 31658 records and now without minus and with flow control: true it is taking 27 seconds to transfer same amount of count
I have tried with without minus and with flow control: flase and it is taking 23 seconds to do the same job
I have removed the minus and added one duplicate record at source DB but it is not moving to E$ table and getting failes at Merge Row step with error mention above.e removed minu from
I have removed minus clause from load data into flow table I$ step in KM and while testing it is giving same issue.
with out minus, the KM will throw the duplicated records into E$ table (flow control is true)
In target DB, we have added B-Tree indexs, I have checked before that
Regards,
Phanikanth -
How to use read_text function module
Hi how to use read_text function module to read purchase order header text .what are all tht things to pass in ID,Name and Object
thanks,
MaheDear,
Use below code.
DATA:IT_LINE LIKE TLINE OCCURS 0 WITH HEADER LINE,
V_TDNAME LIKE THEAD-TDNAME.
V_TDNAME = PO_NUMBER.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = 'F01'
LANGUAGE = 'EN'
NAME = V_TDNAME
OBJECT = 'EKKO'
TABLES
LINES = IT_LINE.
Thanks and Regards, -
Custom IKM Knowledge Modules are not working with Group By Clause
Hi All,
I am facing an issue with custom IKM knowledge modules. Those are IKM Sql Incremental Update and IKM Sql Control Append.
My Scenario is
1. Created an interface with table on source and temporary datastore with some columns in target.
2. In the Interface on the target i defined one column as UD1 and other column as UD2 for which group by to be implemented .
3. Customized IKM Sql Incremental Update with " Group by " by making modification in my IKM Sql Incremental Update
detail step "Insert flow into I$ table" i.e., i replaced like this whereever i find this <%=odiRef.getGrpBy()%> API
Group By
<%=snpRef.getColList("","[EXPRESSION]","","","UD1")%>,
<%=snpRef.getColList("","[EXPRESSION]","","","UD2")%>
Up to UD5.
. Here in the place of [EXPRESSION] i passed column names for UD1 similarly other column name for [EXPRESSION] of UD2.
4.Made all the proper mappings and also selected the KM's needed for that interface like CKM Sql ,IKM Sql Incremental Update.
5. Executed the Interface with global context.
Error i am getting in this case is :
Caused By: java.sql.SQLSyntaxErrorException: ORA-00979: not a GROUP BY expression
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1115)
Here the columns in the select clause are there in Group By also.
I did the same scenario using IKM Sql to file append .In that case i am able to do it. But not with the above mentioned KM's. Please let me know if any one know it or tried with this, as it is
high priority for me.
Please help me out.
Thanks,
keerthiHi Keerthi,
If your are transfering data from Oracle to Oracle (I means source is oracle Db and target is also oracle DB) then use below KM's and group by will come automatically based on the key values you selected on interface target datastore
1) CKM Oracle
2) LKM Oracle to Oracle (DBLINK)
3) IKM Oracle Incremental Update (MERGE)
Hope this will helps to resolve your issue
Regards,
Phanikanth -
How to use the text module in script
hi,
i script how to use the text modules and how to write the code in layout of the script?Hi,
You canr use text modules in script. You have to use standard texts .
Standard text are maintained in SO10 transaction.
you can create translation text for other languages also . So based on logon language it will print translation text.
go to SO10
give textname it say Ztextname id as ST and language as EN
say create, then you will get editor there maintain your text and save it . then come back . Now change language (say for german DE) say create and eneter translation text and save it.
so now you have created a text called ztextname which you can use in your script.
Inorder to insert the texts in your script do as below
go to any window editor and select path
Insert->texts->symbols->standard symbols
then you will get popup in which you have to mention all the parameters that you have created earlier.
after inserting just change language EN to sy-langu
Reward points if useful
About text elements Sravan already given some informatiomn
Regards,
Nageswar -
Need help in creating Knowledge module to aggregrate source data.
Hi Guys,
I am new to ODI and I am trying to create a Knowledge module. I went through the docs relating to Knowledge modules and APIs, so hopefully did my home work, I still find writing KM to be very challenging for the scenario, I have.
The following is my scenario.
I have two tables Employee and Department. Employee is the source and Department is the target. I need to sum salaries of all the employees belonging to a given department. And then insert the data into Department table.
Structure of the tables is as follows:
Employee(Source Table name)
Employee_id
Salary
Dept_id
Department(Target table name)
id
total_salary
Both target and source are on the same server. The user of this KM would drag and drop both source and target tables into interface and then map the columns. In the above case, Dept_id to id and salary to total_salary and then use this IKM. And off-course the user would indicate what columns would be aggregated on and what would be used as group by. One way to tag that, would be to use those UD1,UD2 tags in target column properties. (If there is another way to tag a column to indicate a column to be used for aggregation and a given column to be used in group by during run time in source, please let me know)
I choose to write IKM for this.
The challenging part is that I am having hard time figuring out the columns of source table as to what column should be used as group by and what column to be aggregated on. Since the tags are defined on Target columns and not on source columns. So have to figure out the appropriate columns through the mapping at run time.
The following is what I am planning to write in (Insert new rows ) command. And the part where I need help is how to compose select statement.
iinsert into <%=odiRef.getTable("L","TARG_NAME","A")%>
<%=odiRef.getColList("", "[COL_NAME]", ",\n\t", "", "((INS and !TRG) and REW)")%>
<%=odiRef.getColList(",", "[COL_NAME]", ",\n\t", "", "((INS and TRG) and REW)")%>
Select
source.column1,sum(source.column2) from <%=odiRef.getFrom()%> GROUP BY source.column1
Thanks.I did try as per your advise.
Filter is not making a difference. Irrespective of me adding a filter or not, ODI generates a sql that has GROUP BY , just by looking at SUM(SALARY).
Coming back to the main issue, this does do what I wanted to do. I was planning on using a custom KM. But I guess, this is as good as custom KM, since the work done in an interface (assuming a custom KM exists) by going through either route is the same, so I can live with this approach.
Thanks for the help. -
How to use SO_OBJECT_SEND function module
Hi friends,
how to use SO_OBJECT_SEND function module in 4.0B Server .hi
good
check this code
REPORT ZTSAPMAIL.
DATA: X_OBJECT_TYPE LIKE SOOD-OBJTP.
DATA: BEGIN OF X_OBJECT_HD_CHANGE.
INCLUDE STRUCTURE SOOD1.
DATA: END OF X_OBJECT_HD_CHANGE.
DATA: BEGIN OF X_OBJCONT OCCURS 10.
INCLUDE STRUCTURE SOLI.
DATA: END OF X_OBJCONT.
DATA: BEGIN OF X_OBJHEAD OCCURS 0.
INCLUDE STRUCTURE SOLI.
DATA: END OF X_OBJHEAD.
DATA: BEGIN OF RAW_HEAD.
INCLUDE STRUCTURE SORH.
DATA: END OF RAW_HEAD.
DATA: BEGIN OF X_RECEIVERS OCCURS 0.
INCLUDE STRUCTURE SOOS1.
DATA: END OF X_RECEIVERS.
PARAMETERS: RECEIVER LIKE X_RECEIVERS-RECNAM. " Name
*BUILD MESSAGE HEADER
MOVE 'Sort field goes here' TO X_OBJECT_HD_CHANGE-OBJSRT. " Sort field
MOVE 'Name of the object goes here' TO X_OBJECT_HD_CHANGE-OBJNAM. " Name
MOVE 'Document title goes here' TO X_OBJECT_HD_CHANGE-OBJDES. " Title
MOVE 'F' TO X_OBJECT_HD_CHANGE-OBJSNS. " Functional OBJECT
MOVE 'E' TO X_OBJECT_HD_CHANGE-OBJLA. " Language
Object type of the new document
MOVE 'RAW' TO X_OBJECT_TYPE.
CLEAR X_OBJCONT.
MOVE 'Contents of mail' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
CLEAR X_OBJCONT-LINE. APPEND X_OBJCONT.
MOVE 'More contents' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
MOVE 'Still more contents'
to x_objcont-line.
APPEND X_OBJCONT.
MOVE ' ' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
Specific header (Dependent on the object type, here RAW)
REFRESH X_OBJHEAD.
DESCRIBE TABLE X_OBJCONT LINES RAW_HEAD-RAWSIZ.
MOVE RAW_HEAD TO X_OBJHEAD.
APPEND X_OBJHEAD.
*RECEIVERS table
CLEAR X_RECEIVERS.
REFRESH X_RECEIVERS.
MOVE RECEIVER TO X_RECEIVERS-RECNAM. " Name
MOVE 'B' TO X_RECEIVERS-RECESC. " Receiver type
MOVE 'X' TO X_RECEIVERS-SNDCP. " Send as a copy
MOVE 'X' TO X_RECEIVERS-SNDEX. " EXPRESS DOCUMENT
APPEND X_RECEIVERS.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
folder_id = 'OUTBOX'
forwarder = x_forwarder
object_fl_change = x_object_fl_change
OBJECT_HD_CHANGE = X_OBJECT_HD_CHANGE
object_id = x_object_id
OBJECT_TYPE = X_OBJECT_TYPE
OUTBOX_FLAG = 'X'
OWNER = SY-UNAME
store_flag = x_store_flag
importing
object_id_new = x_object_id_new
sent_to_all = x_sent_to_all "May need to use
TABLES
OBJCONT = X_OBJCONT
OBJHEAD = X_OBJHEAD
objpara = x_objpara
objparb = x_objparb
RECEIVERS = X_RECEIVERS.
reward point if hlepful.
thanks
mrutyun^ -
Get purchase order doc date using BAPI function module
Hi,
I have a .net windows application that uses BAPI_PO_GETDETAIL function module to get particular details of a PO in SAP. But i am not able to get the "Doc Date" for a particular PO. I am able to get all the details of items from the table "PO_ITEMS ". I used only 1 input parameter "PURCHASEORDER".
Please help me to get this thing done
.netframework : 4.0
Language: C#
Visual Studio: vs 2010
Regards,
Manosh JacobAbsolutely hynek petrak..
Manosh Jacob You can go with the above technique. -
How to refresh ODI variable as part of a Knowledge Module?
Hi,
I want to know how can i refresh a ODI varaible in a knowledge module using oracle Technology. EX: i have created a variable called VAR_TEST in ODI.
In one of the knowledge module steps, i want to refresh as mentioned below:
begin
select colname into #VAR_TEST from tablename;
end;
Many thanks ....Hi Martin,
Put the query in the refresh tab into the variable, generate a scenario from the variable and call the scenario thru "OdiStartScen" (Sunopsis API technology) from KM.
In this case the variable needs to be "Last Value"
An alternative is to use a Java variable instead.... Works better to KM's.
Does it help you?
Cezar Santos
http://odiexperts.com -
Regarding how to use the function module *control_form* in scripts
HI friends,
Can any one tell why and where do we use the function module control_form in scripts. Can you give me a small scenario how to use in scripts.hi satish,
by using this function module we can pass the control
commands to FORM THROUGH ABAP/4 PROGRAM.
see the following example:
TABLES: kna1.
DATA: BEGIN OF it_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
land1 LIKE kna1-land1,
END OF it_kna1.
DATA:records TYPE i,
window TYPE i value 1.
select-options:s_kunnr for kna1-kunnr.
SELECT kunnr name1 ort01 land1 FROM kna1 INTO TABLE it_kna1
where kunnr in s_kunnr.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = 'ZSCRIPT4'
language = sy-langu.
LOOP AT it_kna1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'ELE1'
function = 'SET'
type = 'BODY'
window = 'MAIN'.
DESCRIBE TABLE it_kna1 LINES records.
IF window lt records.
window = window + 1.
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
command = 'NEW-WINDOW'
EXCEPTIONS
UNOPENED = 1
UNSTARTED = 2
OTHERS = 3
ENDIF.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT =
RDI_RESULT =
TABLES
OTFDATA =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
thanks,
raji -
What is the Use of Text Module Radio buton in Smartforms
Hi all,
What is the Use of Text Module Radio buton in Smartforms T - code ? How can we link this to our form ?
Thanks in advance
KRText modules
Text modules are used to centrally store texts that are used frequently in forms in the system.
Text modules are included in forms using texts nodes. The text node can either refer to the text module or take its text. You can then change the text or add to it to suit the form.
Text modules have the following attributes:
They are client-independent
They are connected to the transport system
They are connected to the translation tools in the system
The third attribute means that a text module can be uniquely assigned to a language using the logon language. When including a text module, you can also access translations of the text module, for example, to include an English text module in a German form.
Reward Points if useful. -
Reg : Doubts on Knowledge Modules
hi all,
Please give brief idea about knowledge modules. please dont give links .
KNOWLEDGE MODULES
REVERSE ENGINEERING
LKM
CKM
IKM
JKM
SKM
Thanks a lot in advance ,
-Chinnu.LKM - Loading
The LKM - Loading Knowledge Modules - load (or extract data) from one data server to another.
They are named as follows:
LKM <source server technology> to <target server technology> (<module specificity>)
JKM - Journalizing
The JKM - Journalizing Knowledge Modules - setup journalizing on a datastore in a data model.
They are named as follows:
JKM <technology to journalize>
Note: Journalizing uses triggers and views. Therefore technologies that do not support these functions generally do not have an associated JKM.
IKM - Integration
The IKM - Integration Knowledge Modules - integrate data in a target data server from a Staging Area. Frequently, the Staging Area and target space are on the same data server. The IKM can manage options such as data insertion (Append), or update (Incremental Update), etc.
They are named as follows:
IKM <Staging Area data server technology> to <target data server technology> <option managed in the module> (<module specificity>)
IKM <Staging Area and target data server technology> <option managed in the module> (<module specificity>)
Note: The option managed by the module frequently indicate the more complex option supported in this knowledge module. For instance, a module Incremental Update (update) should also be able to manage the option append, which is data insertion, and suppression of data in the target..
CKM - Check
The CKM - Check Knowledge Modules - manage the data quality and cleansing, on static data and on data flows.
They are named as follows:
CKM <Checked Technology> (<module specificity>)
RKM - Reverse-engineering
The RKM - Reverse Knowledge Module - reverse-engineer a data model stored in a given technology. As default, the standard reverse allows to reverse all the information and meta-data in most models. It is required for certain technologies (files for instance) to use a personalized reverse and therefore a RKM. They are named specifically.
SKM - Services
SKM (Service Knowledge Modules) are used to generate the code required for creating data services. This code (typically Java) can be automatically compiled and deployed to a web service container.
You can get more information about various KMs from
http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/documentation/oracledi_km_reference.pdf
There is no escape from URL :) -
Teradata SQL multiple statements (not multistmt) in Knowledge Module Step??
In a Knowledge Module Step using Teradata Technology, I have the following statements
statement 1 ;
statement 2 ;
statement 3 ;
Since the semicolons are at the end of each statement, I expect that these statements will be executed in sequential order
and not in parallel as in a multistatement. Can someone confirm this ?
I ask this question, because I observe that if statement 2 fails (say for e.g because it is an insert statement and there is no space on the database) then statement 1
is not commited either (or perhaps it is rolled back ). This behaviour is expected in multistatements (i.e. where statements run in parallel).
Thanking you all in great anticipation
Amer (Newbie!)Hi Amer,
This is obvious that in one step you have included
statement 1 ;
statement 2 ;
statement 3 ;
So any of the statement fails means this step is not going to work unless until you use AUTOCOMMIT STATMENT (drop or truncate).
If your 1st statement will be " drop table xyz"
2nd statement will be " truncate table abc""
3rd statement will be " delete from def"
if 3rd statement fails , then 1st two are auto committed and will be reflected in your database. But if 1st statement fails means its the end for this step.
If your requirement is like to do this in step of a KM better use one procedure.
Hope its helps.
Thanks -
Hi folks
can you please suggest me what type of loading and integration knowledge modules can i use for my requirement
source->AS/400
Target->oracle
Thanks
RajIf you only need to Append, then use IKM SQL Control Append, if you need to update, then use IKM Oracle Incremental Update. If using the IKM Oracle Incremental update, make sure you use the latest version, and make sure you select the appropriate options ( COMPATIBLE- 0 Oracle 9/10, and DETECTION_STRATEGY)
-
Knowledge Module info in repository
In which tables is Knowledge Module information held in the repository?
My specific issue is as follows:
I want to find all interfaces that have a particular option to a particular value in the IKM Oracle Merge.
Thanks
Uli
www.bi-q.ie
Edited by: ubet on Oct 2, 2009 10:18 AMUli,
SELECT st.trt_name, sp.pop_name, sue.ue_name, sue.short_value
FROM snp_trt st, snp_user_exit sue, snp_pop sp
WHERE st.i_trt = sue.i_trt
AND sp.i_trt_kim = sue.i_trt
AND st.trt_name LIKE '%Oracle%MERGE%'
will give you a list of all the interfaces that are using Oracle MERGE KM and their respective Option and its corresponding value.
You can filter on UE_NAME and SHORT_VALUE columns to find the interfaces that you need.
Maybe you are looking for
-
How to call an action when the user selects a radiobutton
Hai PLease help me in providing the information. In my Project i have two radio buttons as New Asssessment when the user selects new button, i want to automatically call an action in the controller(.jpf file) Simalarly when he selects the other radio
-
How to see all files in my icloud account?
I would like to see all files and space available in my Icloud account, How to do this Please?
-
Editing While Loop Conditions hangs JDeveloper 10.1.3
Hi Guys, Having a strange problem when I tried to edit the condition in a while loop after it was created and set first time. The IDE just hanged when I tried to open the expression builder and after a while, nothing happened, the expression builder
-
64bit support for FireWorks CS5?
In future, will launch 64bit version of FW??? -- Sag-e-Attar Junaid Atari
-
Registry entry 'ClientAlwaysOnInternet' value is 0.
Hi when I install the client (dropping CCR) it successfully installed. but loctionserive.log show's belo message repeatedly Registry entry 'ClientAlwaysOnInternet' value is 0. Registry entry 'Internet MP Hostname' is either missing or empty. Internet