Transaction tab in ODI Procedure
Hi Experts,
Can anyone help me on what and how exactly the Transaction tab in the ODI Procedure step works? Thanks!
Warm Regards,
VBV
Hi,
I take you mean the Transaction drop box on a procedure step?
This you can use to isolate transactions within the session, and commit at the end. For an example, if you want to load data from various sources into a table, you can set the Transaction for each procedure step to the same transaction isolation value, with the 'Commit' as 'No commit' and when all data is loaded into the table, have a commit step in your procedure to commit that specific transaction. If for some reason a step fails, then no data within that transaction will be committed to the database.
Its the same as using SQL Developer and having auto commit turned off. You have to manually commit to the database if you want to see the data changes in another session, or you can Role Back your changes within the session if you do not want to commit them.
Have a look at the IKM 'IKM Oracle Incremental Update' - this uses Transaction 1 on the following steps, both have a specified 'No Commit':
'update existing rows'
'Insert new rows',
then has a specific commit step afterwards.
Hope this helps.
Cheers
Bos
Similar Messages
-
ODI Procedure...same table in source and target tabs?
In ODI Procedures is it possible to use the same table in the same logical schema, on the source as well as the target tabs and performdata binding?
Thank you all.
Here's what I am trying to do. I am trying to convert PO data from Sybase into Oracle EBS. I have a custom table which captures the vendor name. It also has a field for the vendor_id which is the identifier for this vendor. I am bringing in the vendor name from sybase table into the custom table. Now I need to retreive the identifier value for this vendor from an ebs table *"AP_SUPPLIERS"* and update the same custom table. I was trying to use a procedure to retrieve the records from the custom table on the source side and update the corresponding record on the target side.
any ideas or suggestions for this would help.
Thanks again. -
How to execute unix command from ODI Procedure
Hi,
I am trying to execute below unix command from ODI Procedure (Command on Target tab) but I am getting the error "java.io.IOException: Cannot run program "cd": error=2, No such file or directory" but when I try to execute the same command using OdiOSCommand, it is executing successfully. I don't want to use shell script to execute this command. Is there any specific syntax am I missing to execute this command from ODI procedure?
cd /project3/tmt/;ls *.dmp > dmplist.lst
Please help me on this...
Thanks
MTHi nahlikh,
Thank you for the reply.
I used below command in Procedure but still getting the same error as "java.io.IOException: Cannot run program "OdiOSCommand": error=2, No such file or directory".
OdiOSCommand "-COMMAND=cd /project3/tmt/;ls *.dmp > dmplist.lst"
as I mentioned earlier if I use the command cd /project3/tmt/;ls *.dmp > dmplist.lst in OdiOSCommand tool it is executing successfully without any issues.
any thoughts appreciated to get a solution for this issue.
Thanks
MT -
Isolation Levels in ODI procedures
Hi,
I have a package with 1 interfaces and 2 procedures which I want to configure in as one transactional unit
The package executes the following sequence
1. Interface loads data from the source to target table
2. Procedure updates a statuscode on the source table to S
3. Procedure updates target table sequence number, but the procedure contains a where clause which filter records to updates
based on records in the source table with statuscode = S.
Step 3's execution is dependent on update in step 2. These steps behave as expected and all units tests pass when I
leave the transaction porperty of the procedures as AutoCommit.
However I want the interface and packages to be executed as a transcational unit so I configued them as follows.
The 2 procedures are configured to execute in the same Transaction (Transaction 0) with Commit property as "No Commit".
I based this on other forum entries.
With this configuration my unit tests seem to fail, the 3 step does not result in any record being updated.
I think the issue may be related to the isolation levels on the procedures, so I then configured the procedure's "Transaction Isolation" property to be "Read Uncommited".
When I ran the test in ODI I got the following error below.
Can you let me know if what I am trying to do is possible ?. Can you have a number of procedures in a single transactional unit,
where uncommited changes carried out in the first procedure(not committed), can be read in subsequent steps within that same transactional unit.
I am current using ODI Repository: Development_ODI_D8B4A_RC5
Any feedback would be appreciated.
Thanks,
Breda
ODI-1226: Step UPD REVN LSM fails after 1 attempt(s).
ODI-1232: Procedure UPD REVN LSM execution fails.
ODI-1228: Task UPD REVN LSM (Procedure) fails on the target ORACLE connection SALES_IMP_DATA_SERVER.
Caused By: java.sql.SQLException: ODI-10068: SnpsConnection: Isolation level not supported
at com.sunopsis.sql.SnpsConnection.setTransactionIsolation(SnpsConnection.java:905)
at com.sunopsis.sql.SnpsConnection.changeIsolationLevel(SnpsConnection.java:329)
at com.sunopsis.dwg.dbobj.SnpSession.changeIsolationLevel(SnpSession.java:3519)
at com.sunopsis.dwg.dbobj.SnpSessTask.getDefaultDwgConnectConnection(SnpSessTask.java:518)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.getExecutor(SnpSessTaskSql.java:2936)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2878)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2602)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:546)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1736)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1591)
at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:568)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:489)
at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1062)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:118)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:49)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:94)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:85)
at oracle.odi.runtime.agent.RuntimeAgent.startScenario(RuntimeAgent.java:700)
at oracle.odi.runtime.agent.InternalRuntimeAgent.startScenario(InternalRuntimeAgent.java:52)
at com.sunopsis.dwg.tools.StartScen.startScenOnLocalAgent(StartScen.java:983)
at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java:245)
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepos
Edited by: user807308 on 14-Jan-2011 01:04
Edited by: user807308 on 14-Jan-2011 01:04Similar issue has been discussed here:
Re: Transaction rollback...
Check that out -
ODI Scenario Hang on ODI Procedure
Hi Experts,
We have one ODI scenario which consists of a few ODI procedure steps with anonymous PL/SQL block. When one procedure takes a long time to process data (>60min. when data volume is large), the ODI scenario hangs intermittently on the procedure (ODI Operator shows Running state and no progress to next step in Scenario). The pl/sql script finished fine when running against database directly processing the same dataset.
When the ODI step hangs, the database side where the pl/sql runs on has no more activities, and the db session(v$session) which processes the ODI procedure goes away as well (db session not existing on db anymore). But the ODI Operator still shows the step in running state and hangs there forever (days). The jdbc connection from ODI to db looks fine.
How can we fix this problem in ODI? The ODI version is 10.1.3.5.
Appreciate your input on this.
Thanks,The doc said "If your command is being executed in a transaction (numbered 0 to 9)" then I should set 'Commit'. But I used 'Autocommit' for transaction, is the 'Commit' necessary here?
Thanks! -
ODI Procedure error log syntax
hi
I need to call an odi procedure and an error log needs to be stored on an error table.
I have created an ODI procedure and in command on source select Oracle as technology and the logical schema
here I put
DECLARE
ODI_VAR VARCHAR2(4000);
BEGIN
select ( '<%=odiRef.getPrevStepLog( "MESSAGE" )%>') into ODI_VAR from dual;
END;
and in target tab.
Insert into ERROR_LOG (TASK_NAME,ERROR_DESCRIPTION)
Values ('test','ODI_VAR');
AFTER executing I am getting the below error
900 : 42000 : java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:397)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:662)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Odscrarr.doODNY(T4C8Odscrarr.java:101)
at oracle.jdbc.driver.T4CPreparedStatement.doDescribe(T4CPreparedStatement.java:848)
at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:5331)
at oracle.jdbc.driver.OracleResultSetMetaData.<init>(OracleResultSetMetaData.java:58)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:274)
at oracle.odi.runtime.agent.execution.sql.concurrent.FastJDBCRecordSet.<init>(FastJDBCRecordSet.java:73)
at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:97)
at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:1)
at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:67)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:537)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:338)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:272)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:263)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:822)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Please help me to resolve this issue.Hi,
Try like this :
Command on source :
select ( '<%=odiRef.getPrevStepLog( "MESSAGE" )%>') ODI_VAR from dual
Command on target:
Insert into ERROR_LOG (TASK_NAME,ERROR_DESCRIPTION)
Values ('test',:ODI_VAR)
Use the above syntax as it is....it should work.......... -
Make Payment transaction tab in XD01,02,03 disable
Hello,
Want to make payment transaction tab disable in XD01,02,03 for specific users.Please gimme the solutions asap, Thanks in advance
Thanks
SuchiAuthorisation relates to security. Please discuss with your Basis or Security consultant for actual process.
But the procedure is that they make changes to User Roles to limit access to users for making changes to customer data or Transactions by using Authorisation Object F_KNA1_APP Or F_KNA1_GEN -
ODI Procedure: Using Variable Logical Schema
Hi!
i wrote a PL\SQL procedure inside an odi procedure, using options, variables etc.
now we need to execute the procedure in different logical schemas.
We've at least 20 different logical schemas and to semplify the maintenance we'd like to pass the logical schema as an Option or something similar,
is it possibile to do this with a procedure?
The version of ODI is 11.1.1.5.0 and the targets are only Oracle DB.I've got a question : are all you schema in the same server (database) ?
If so, you can LIST the schemas with a SQL Statement in the "command as SOURCE" tab.
example :
select owner as SCHEMA
from all_tables
where ...or a SQL Statement in ODI MASTER_Repository to get the logical schema :
select lschema_name as SCHEMA
from snp_lschema t1
where ...And in the "command as destination" tab, you execute the PL SQL, but you use the result of SCHEMA.
As a result, if you have 40 schema retrieved by the first SQL Statement, ODI will execut your PL/SQL statement 40 times, changing the SCHEMA value each time.
And, in the first tab (command as destination), you use a generic Oracle User that have access to all schema of the dabase (or at least, the 40 schema you want). -
ODI Procedure - updting the source table
Hi,
I need to call a PL/SQL package via ODI. I used ODI procedure to do the task.
In source tab - select empid from employee
In target tab -
decalre
ab varchar2(25);
begin
pack1.proced1(:empid,ab);
update success1 set val1 = ab where empid = *:empid;*
commit;
end;
But when i execute the procedure, its giving the error as missing parameter empid. It could not recognise the bolded part. When i give the direct value in the cmd,
update success1 set val1 = ab where empid = *101;* its working fine.
Any idea to resove this issue.
Thanks in Advance,
Ram Mohan TVijay,
1. Do you expect a single record to be returned by your source query?
No. My source query returns with multiple records.
2. What is the signature of your procedure? Does it accept a list of Id's or a single number.
My procedure accepts only one id at a time. After that is processed, the next id will be passed to the procedure.
Vijay, one thing i am confused is when I use a insert statement after the procedure its working fine (insert into success1 values(:empid,ab)).
When i use the update stmt without where condition after the procedure also working fine (update success1 set empid1 = :empid).
But when i use the where condition, update success1 set empid1 = ab where empid1=:empid its not working fine. Error is "Missing Parameter empid"
Thanks in Advance,
Ram Mohan T -
Passing parameters into ODI procedure step which has an OS command
Folks,
I have an ODI procedure step which does a directory listing for a specific directory. The command I am using is
cmd /C dir d:\local_dir /b > D:\dir_list.txt
I have put on the 'Command on Target' tab. This works fine
I want to remove the hardcoding for the directory references. I have tried the command
cmd /C dir '#src_dir' /b > D:\dir_list.txt
but when this executes it generates an ODI error 'Wrong process return code'
any suggestions?I've figured it out. The issue was with using quotes in the value being passed into the variable. Once removed, it worked fine. Thanks for the assistance.
Regards.
Edited by: user810644 on 17-May-2010 01:59 -
not able to see ikm oracle incremental update and ikm oracle slowly changing dimensions under PHYSCIAL tab in odi 12c
But i'm able to see other IKM's please help me, how can i see themNope, It has not been altered.
COMPONENT NAME: LKM Oracle to Oracle (datapump)
COMPONENT VERSION: 11.1.2.3
AUTHOR: Oracle
COMPATIBILITY: ODI 11.1.2 and above
Description:
- Loading Knowledge Module
- Loads data from an Oracle Server to an Oracle Server using external tables in the datapump format.
- This module is recommended when developing interfaces between two Oracle servers when DBLINK is not an option.
- An External table definition is created on the source and target servers.
- When using this module on a journalized source table, the Journaling table is first updated to flag the records consumed and then cleaned from these records at the end of the interface. -
Hi Experts,
I have created following procedure and triyng to get column value by using rownum. When I run the scenario, I am getting following exception at ODI Procedure step. Can any one please help me on it
I have created loop package to fetch column value until loop end.
Please let me know if you are not clear my query
ODI Procedure:
begin
select a.eno into '#EMPNO' from (select rownum r,e.* from trg_emp_01 e) a where a.r=#Counter;
end;
#EMPNO variable created as alphanumeric datatype and
#Counter variable created as alphanumic datatype and it is assign with '1' value
Exception:
6550 : 65000 : java.sql.SQLException: ORA-06550: line 1, column 25:
PLS-00220: simple name required in this context
ORA-06550: line 1, column 28:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
java.sql.SQLException: ORA-06550: line 1, column 25:
PLS-00220: simple name required in this context
ORA-06550: line 1, column 28:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
ODI Procedure:
begin
select a.eno into #EMPNO from (select rownum r,e.* from trg_emp_01 e) a where a.r=#Counter;
end;
Exception:
6550 : 65000 : java.sql.SQLException: ORA-06550: line 1, column 26:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
java.sql.SQLException: ORA-06550: line 1, column 26:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
Thanks
Phani
Edited by: Phanikanth on Jul 9, 2010 1:25 AM
Edited by: Phanikanth on Jul 9, 2010 2:08 AMGood point - In my case, these are single executable statements. These have been saved in ODI and executed successfully. Just no using my machine.
EXAMPLE 1------------
DECLARE
RetVal ;
I_STRING VARCHAR2(200);
BEGIN
I_STRING := '';
RetVal := XXX.PKG_XXX.SF_COMMA_TO_TABLE ( I_STRING );
COMMIT;
END;
EXAMPLE 2------------
SELECT C.COL1, B.COL2, B.COL3,TO_CHAR(B.EFFDT,'YYYY-MM-DD') COL4,B.COL5,B.COL6
FROM TABLE1 A, TABLE2 B, TABLE3 C
WHERE
and A.ID = 'XXX'
and a.setcntrlvalue = ' '
AND A.NAME = 'XXX'
AND A.EFFDT =
(SELECT MAX(A_ED.EFFDT) FROM TABLE1 A_ED
WHERE A.SETID = A_ED.SETID
AND A_ED.EFFDT <= SYSDATE)
AND B.EFFDT =
(SELECT MAX(B_ED.EFFDT) FROM TABLE2 B_ED
WHERE B.SETID = B_ED.SETID
AND B.ACCOUNT = B_ED.ACCOUNT
AND B_ED.EFFDT <= SYSDATE)
AND A.SETID = B.SETID
AND A.RANGE_FROM = A.RANGE_TO
AND B.ACCOUNT = A.RANGE_FROM
AND A.SETID = C.SETID
AND A.TREE_NAME = C.TREE_NAME
AND A.TREE_NODE_NUM = C.TREE_NODE_NUM
AND C.EFFDT =
(SELECT MAX(C_ED.EFFDT) FROM TABLE3 C_ED
WHERE C.SETID = C_ED.SETID
AND C_ED.EFFDT <= A.EFFDT)
------------------ -
How to restrict executing tcodes in transaction tab for master clients
This question applies SOLMAN project implementation tools: SOLAR01, SOLAR02 and so on.
Our ERP2005 development U50 system has two clients:
One is master client 101 where all customizing should take place but no transactions are allowed
second client 102 works as sandbox client where new customizing can be test and master data and transaction are allowed.
Only U50/101 is defined in Solution manager SMSY in system role 'development system'. Currently U50/102 is not defined in Solution manager to any system role at all.
As configuration should take place via Solution manager, the consultants use SOLAR01 and SOLAR02 in system role 'development system' meaning that they are connected to U50/101 if want to execute transactions in transaction tabs or IMG nodes in Configuration nodes.
But U50/101 is our MASTER client and no transactions nor most master data are allowed in there. We want to keep it clean. How can I avoid tcodes being executed in system role 'development'. I want to allow consultants use tcodes if they change to system role 'quality system'. But they might forget to change the system role before executing the transaction.
Is there an option in Solution manager Project implementation tools that do not allow tcode launch from transaction tabs when system role is 'development system'.
Of course I can restrict tcode execution with authorizations in satellite systems, but then I would need to disable authorizations for each tcode possibly being used. So I don't like that option.
br: KimmoOkay, I'll continue dialog with myself. I found solution how to assign other clients on one system to other system roles, which are so-called 'customer roles'.
See solution manager help:
http://help.sap.com/saphelp_sm40/helpdata/en/3b/8be61c54d22945837fd69861d21a08/content.htm
I did not know until know, that system roles are actually customizable. The roles with letter P,D,C,T,E, etc. are reserved for SAP but you can create your own system roles into table SMSY_ROLES. You would not do it with SM30, but from tcode SMSY and following menu Utilities-System Settings->tab:System Roles. Switch to change mode. Roles with 0-9 are available for "customer roles". Choose role type and write your own description ( like: Sandbox client in development system ).
Now the new role is available in SMSY. But You cannot see it yet in SOLAR_PROJECT_ADMIN/System Landscape tab. In there you must press button 'System role assignment' and in the opening window add your own 0-9 role defined earlier and save. Now you see your new role in 'system landscape' tab and you can assign systems to it like you had done with SAP standard roles.
Now users using implementation tools can change their current system role to your new 'customer role'.
But what it comes to my original problem (see title), that still remains. I have debugged the tcode execution from transaction tabs and don't see any possible way to avoid tcodes being executed for an unwanted system role. An Enhancement Spot ( =new BADI) can of cource be used for making custom rule for my requirement.
I'll make this thread answered. Hope you joined my self-dialog.
Keywords: DEFINE EDIT SYSTEM CUSTOMER ROLES SMSY_ROLES
br: Kimmo -
If you are familar with the Numbers Budget Template it has two tabs 'Budget' and 'Transactions'. If you use the template as it is designed when you input expenses on the transaction tab it will automatically add that amount into the selected category on the budget tab. I have madified my budget tab to reflect the caegories that I need, which included adding several to the template. I also added to the table so it reflects my income and expenses so I can track where I am at with a glance. Since I did this, I can't get my transactions tab to communicate with the budget tab. I figured out how to change the options in the drop down box for category but I con't figure out how to get it to reflect onto my budget tab. I'm sure that it is an easy fix, however, I am just not well versed in Numbers. I appreciate your time in helping me with this issue.
Respectfully,
JonMy guess is that while you added catetories to your Budget Sheet by adding new lines and filling in the category column, you didn't also add the formulas to these new budget lines.
The proper way to add those lines would have been to select a cell in the line just above where you want to add a line and type Option/Alt-DownArrow. This would have copied the formulas into the new line. Maybe you did this, and maybe not. You didn't give details on how you added the lines.
Select C2 and D2 and Command-C to copy them to the Clipboard.
Select all the cells of Columns C and D except for the top and bottom rows and Command-V to Paste.
If I have properly guessed the problem, you should be in business. This assumes that your Categories are exaclty the same as the entries in your Pop-up menus. Spelling counts, as does case.
Jerry -
In Scope missing in Transaction tab
Hi All,
My company has recently started to work with Solution manager.
We have created a template project in solution manager that contains all our processes.
I'm now tasked by testing the testing functionality of solution manager.
By reading and doing some initial testing I noticed that we do not have the "In Scope" column in the transactions tab.
Is this only available in implementation projects or did we configure something wrong?
regards,
PeterHi Peter,
scoping is generally not possible in Template projects, neither in structure nor on transaction tab.
Regards
Andreas
Maybe you are looking for
-
Why I'm giving up my Q10 to go back to the Bold 97...
In light of Robert Vance's earlier post, I wanted to share my own experiences with the BlackBerry Q10, in the hope that BlackBerry will resolve their issues and make a better phone. I had been eagerly anticipating the BlackBerry Q10 for the better pa
-
Loading custom TableView cell asynchronously
hey all.i have custom cell which has a label and an image in it..i load the images synchronously the tableView but when i scroll down it frozen..so i want to load it asynchronously..to do that i read some tutorials and i found that site http://www.ma
-
What is available to read write copy paste for word documents?
Need an office document program compatible with ms word.......suggestions please.....
-
Aperture and Canon 5D mark II import problem: copyright and author metadata
After importing RAW images to Aperture, I missing my name and copyright info in metadata, everything els is there; lens, focal length, shutter sped... I try several methods from camera direct, from memory card, using EOS software to HD and to Apertur
-
My iCloud library is showing up on one computer but not the other. What should I do?
I have an old acount that I want music off of but my iCloud account only shows up on my computer that is already registered to a apple account. PLEASE HELP!!!!