FDMEE Jython scripting
Hello all,
I am new to FDMEE, Classic FDQM. I am up to a task to convert some of the VB scripts from release 113 into Jython scripts which will be compatible with FDMEE in EPM 123.
When I try to execute the Java APIs for FDMEE I am getting errors in the script, The environment is set properly as all the APIs are identified correctly by the Eclipse editor and I no longer get the NoClassDefinedException.
I tried executing getEPMOracleHome() from the FDMEE APIs but it is throwing an exception, basically I think somewhere I am missing the life cycle to implement FDMEE APIs in the Jython Code..
Can anyone tell me the life cycle to implement these APIs or any Document which shows me how can I start FDMEE Coding in Jython?
Thanks
Arpan
Hello Francisco,
This is the code that is giving me error:
if __name__ == '__main__':
print "hello"
import java.math.BigDecimal as BigDecimal
import java.sql as sql
import com.hyperion.aif.scripting.API as API
fdmAPI = API()
conn = None
conn = sql.DriverManager.getConnection("jdbc:sqlserver://localhost\\MSSQLSERVER;user=sa;password=hyperion@14");
conn.setAutoCommit(False)
fdmAPI.initializeDevMode(conn);
print "SUCCESS CONNECTING TO DB"
fdmContext = fdmAPI.initContext(BigDecimal("2"))
print "hello"
and this is the output/error that am getting now
hello
SUCCESS CONNECTING TO DB
Traceback (most recent call last):
File "C:\FDMEE\SCRIPTS\Src\Test2.py", line 12, in <module>
fdmContext = fdmAPI.initContext(BigDecimal("2"))
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:388)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:338)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:281)
at com.hyperion.aif.scripting.API.initContext(API.java:817)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'AIF_PROCESSES'.
The Load ID that you can see is an id I could generate after executing a data load process through FDMEE, not sure if this is exactly what should I be giving there..
Thanks
Arpan
Similar Messages
-
How to use a SELECT QUERY using fdmAPI.executeDML in FDMEE Jython Script?
Hi,
Just the way we use DELETE and INSERT Statement using fdmAPI.executeDML, is there any way of executing a SELECT Statement and get the output in variables?
I would like to refrain from using import java.sql and enter the connection details in a script.I would like to rather use SELECT directly if possible. I want to read the TDATASEG.DATAKEY column and use it for some custom process in a custom table
Thanks!Hi SH,
Somehow after upgrading to FDMEE 11.1.2.3.530, this is not working.
I get an error saying
while (RSTxnType.Next()):
Attribute Error: 'oracle.jdbc.driver.OracleResultSetImpl' object has no attribute 'Next' -
FDMEE import script not working
Hi,
I had a simple import script in FDM Classic that was removing every lines of data from a source file for every amount lower than 0.50 and higher than-0.50. The FDM Classic import script was:
Function Remove_50(strField, strRecord)
'Purpose: To skip lines of data Between -0.50 AND
0.50
If IsNumeric(strField) Then
If Abs(strField) <= 0.50 Then
RES.PblnSkip = True
Else
'Keep line:
Remove_50 = strField
End If
End If
End Function
Now, I have to convert it to FDMEE Jython. Here is my first try:
def PSA_Remove_50 ( strField, strRecord ):
if abs(strField) <= 0.50:
return 0
else:
return strField
Very simple import script but it is giving me a headache :Oo
Thanks for your help!
DanI'd also say to stick with the BigDecimal data type unless you have a really good reason for using the float data type. If you start to multiply floats then you can end up with horrors like this if you're not careful where inaccuracies can start to creep in:
>>> f = float(1.1)
>>> f*1
1.1
>>> f*2
2.2
>>> f*3
3.3000000000000003
That's just something to be aware of if you decide to take the float route -
FDMEE BefImport script for SQL source
Hi Experts ,
I am new to FDMEE and trying to implment it for our process which should pull the data from one of the SQL view and load into Essbase. I am trying to use the Open Interface table and hence trying to builde BefImport event script with help of admin guide exmple. I know i am missing manythings in following scripts but i m not sure about it , can anyone please help and guide me to build a correct befImport Event script please !!
Below is the script:
# Sample to import data from a custom SQL source and upload into FDMEE
# open interface table. This script should be called in BefImport Event.
# This is alternate to the FDMEE integration import script.
import java.sql as sql
batchName = "Batch_" + str(fdmContext["LOC_ACT"])
insertStmt = """
INSERT INTO AIF_OPEN_INTERFACE (
BATCH_NAME
,COL01
,COL02
,COL03
,COL04
,COL05
,COL06
,COL07
,COL08
,AMOUNT
) VALUES (
sourceConn = sql.DriverManager.getConnection(sqlserver://hyperion-financial-dev/Custom_hfm_dev1, testuser, password);
# Limiting number of rows to 5 during the test runs.
selectStmt = select * from dbo.ACTUAL_ALL_USD where FYear = '2014' and period = '1'
stmt = sourceConn.prepareStatement(selectStmt)
stmtRS = stmt.executeQuery()
while(stmtRS.next()):
params = [batchName, stmtRS.getString("account"), stmtRS.getString("entity"), stmtRS.getString("Dim1"), stmtRS.getString("Dm2"), stmtRS.getString
("Dim3"), stmtRS.getString("Dim4"), stmtRS.getString("Dim5"), stmtRS.getString("Dim6"), stmtRS.getBigDecimal("Data") ]
fdmAPI.executeDML(insertStmt, params, False)
fdmAPI.commitTransaction()
stmtRS.close()
stmt.close()
sourceConn.close()
Thanks
VJhere is the log ::
5,489 INFO [AIF]: -------START IMPORT STEP-------
2015-04-16 11:37:35,630 DEBUG [AIF]: CommData.preImportData - START
2015-04-16 11:37:35,630 DEBUG [AIF]: CommData.getRuleInfo - START
2015-04-16 11:37:35,630 DEBUG [AIF]:
SELECT brl.RULE_ID, br.RULE_NAME, brl.PARTITIONKEY, brl.CATKEY, part.PARTVALGROUP, br.SOURCE_SYSTEM_ID, ss.SOURCE_SYSTEM_TYPE
,CASE
WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'EBS%' THEN 'N'
WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'PS%' THEN 'N'
WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'FUSION%' THEN 'N'
WHEN ss.SOURCE_SYSTEM_TYPE = 'FILE' THEN 'N'
WHEN ss.SOURCE_SYSTEM_TYPE = 'EPM' THEN 'N'
ELSE 'Y'
END SOURCE_ADAPTER_FLAG
,app.APPLICATION_ID, app.TARGET_APPLICATION_NAME, app.TARGET_APPLICATION_TYPE, app.DATA_LOAD_METHOD, brl.PLAN_TYPE
,CASE brl.PLAN_TYPE
WHEN 'PLAN1' THEN 1 WHEN 'PLAN2' THEN 2 WHEN 'PLAN3' THEN 3 WHEN 'PLAN4' THEN 4 WHEN 'PLAN5' THEN 5 WHEN 'PLAN6' THEN 6 ELSE 0
END PLAN_NUMBER
,br.INCL_ZERO_BALANCE_FLAG, br.PERIOD_MAPPING_TYPE, br.INCLUDE_ADJ_PERIODS_FLAG, br.BALANCE_TYPE ACTUAL_FLAG
,br.AMOUNT_TYPE, br.BALANCE_SELECTION, br.BALANCE_METHOD_CODE
,COALESCE(br.SIGNAGE_METHOD, 'ABSOLUTE') SIGNAGE_METHOD
,br.CURRENCY_CODE, br.BAL_SEG_VALUE_OPTION_CODE, brl.EXECUTION_MODE
,COALESCE(brl.IMPORT_FROM_SOURCE_FLAG, 'Y') IMPORT_FROM_SOURCE_FLAG
,COALESCE(brl.RECALCULATE_FLAG, 'N') RECALCULATE_FLAG
,COALESCE(brl.EXPORT_TO_TARGET_FLAG, 'N') EXPORT_TO_TARGET_FLAG
,COALESCE(brl.CHECK_FLAG, 'N') CHECK_FLAG
,CASE
WHEN ss.SOURCE_SYSTEM_TYPE = 'EPM' THEN 'NONE'
WHEN (br.LEDGER_GROUP_ID IS NOT NULL) THEN 'MULTI'
WHEN (br.SOURCE_LEDGER_ID IS NOT NULL) THEN 'SINGLE'
ELSE 'NONE'
END LEDGER_GROUP_CODE
,COALESCE(br.BALANCE_AMOUNT_BS, 'YTD') BALANCE_AMOUNT_BS
,COALESCE(br.BALANCE_AMOUNT_IS, 'PERIODIC') BALANCE_AMOUNT_IS
,br.LEDGER_GROUP
,(SELECT brd.DETAIL_CODE FROM AIF_BAL_RULE_DETAILS brd WHERE brd.RULE_ID = br.RULE_ID AND brd.DETAIL_TYPE = 'LEDGER') PS_LEDGER
,CASE lg.LEDGER_TEMPLATE WHEN 'COMMITMENT' THEN 'Y' ELSE 'N' END KK_FLAG
,p.LAST_UPDATED_BY, p.AIF_WEB_SERVICE_URL WEB_SERVICE_URL, p.EPM_ORACLE_INSTANCE
,brl.JOURNAL_FLAG, br.MULTI_PERIOD_FILE_FLAG, br.IMPGROUPKEY, imp.IMPSOURCELEDGERID
,imp.IMPGROUPFILETYPE, imp.IMPTARGETSOURCESYSTEMID, imp.IMPSOURCECOAID, part.PARTTARGETAPPLICATIONID
FROM AIF_PROCESSES p
INNER JOIN AIF_BAL_RULE_LOADS brl
ON brl.LOADID = p.PROCESS_ID
INNER JOIN AIF_BALANCE_RULES br
ON br.RULE_ID = brl.RULE_ID
INNER JOIN AIF_SOURCE_SYSTEMS ss
ON ss.SOURCE_SYSTEM_ID = br.SOURCE_SYSTEM_ID
INNER JOIN AIF_TARGET_APPLICATIONS app
ON app.APPLICATION_ID = brl.APPLICATION_ID
INNER JOIN TPOVPARTITION part
ON part.PARTITIONKEY = br.PARTITIONKEY
INNER JOIN TBHVIMPGROUP imp
ON imp.IMPGROUPKEY = part.PARTIMPGROUP
LEFT OUTER JOIN AIF_COA_LEDGERS l
ON l.SOURCE_SYSTEM_ID = p.SOURCE_SYSTEM_ID
AND l.SOURCE_LEDGER_ID = COALESCE(br.SOURCE_LEDGER_ID,imp.IMPSOURCELEDGERID)
LEFT OUTER JOIN AIF_PS_SET_CNTRL_REC_STG scr
ON scr.SOURCE_SYSTEM_ID = l.SOURCE_SYSTEM_ID
AND scr.SETCNTRLVALUE = l.SOURCE_LEDGER_NAME
AND scr.RECNAME = 'LED_GRP_TBL'
LEFT OUTER JOIN AIF_PS_LED_GRP_TBL_STG lg
ON lg.SOURCE_SYSTEM_ID = scr.SOURCE_SYSTEM_ID
AND lg.SETID = scr.SETID
AND lg.LEDGER_GROUP = br.LEDGER_GROUP
WHERE p.PROCESS_ID = 309
2015-04-16 11:37:35,645 DEBUG [AIF]:
SELECT adim.BALANCE_COLUMN_NAME DIMNAME
,adim.DIMENSION_ID
,dim.TARGET_DIMENSION_CLASS_NAME
,(SELECT COA_SEGMENT_NAME FROM AIF_COA_SEGMENTS cs WHERE cs.COA_LINE_ID = tiie.IMPSOURCECOALINEID1) COA_SEGMENT_NAME1
,(SELECT COA_SEGMENT_NAME FROM AIF_COA_SEGMENTS cs WHERE cs.COA_LINE_ID = tiie.IMPSOURCECOALINEID2) COA_SEGMENT_NAME2
,(SELECT COA_SEGMENT_NAME FROM AIF_COA_SEGMENTS cs WHERE cs.COA_LINE_ID = tiie.IMPSOURCECOALINEID3) COA_SEGMENT_NAME3
,(SELECT COA_SEGMENT_NAME FROM AIF_COA_SEGMENTS cs WHERE cs.COA_LINE_ID = tiie.IMPSOURCECOALINEID4) COA_SEGMENT_NAME4
,(SELECT COA_SEGMENT_NAME FROM AIF_COA_SEGMENTS cs WHERE cs.COA_LINE_ID = tiie.IMPSOURCECOALINEID5) COA_SEGMENT_NAME5
,(SELECT DISTINCT CASE mdd.ORPHAN_OPTION_CODE
WHEN 'CHILD' THEN 'N'
WHEN 'ROOT' THEN 'N'
ELSE 'Y'
END DIMENSION_FILTER_FLAG
FROM AIF_MAP_DIM_DETAILS_V mdd
,AIF_MAPPING_RULES mr
WHERE mr.PARTITIONKEY = tpp.PARTITIONKEY
AND mdd.RULE_ID = mr.RULE_ID
AND mdd.DIMENSION_ID = adim.DIMENSION_ID
) DIMENSION_FILTER_FLAG
,tiie.IMPCONCATCHAR
FROM TPOVPARTITION tpp
INNER JOIN AIF_TARGET_APPL_DIMENSIONS adim
ON adim.APPLICATION_ID = 28
INNER JOIN AIF_DIMENSIONS dim
ON dim.DIMENSION_ID = adim.DIMENSION_ID
LEFT OUTER JOIN TBHVIMPITEMERPI tiie
ON tiie.IMPGROUPKEY = tpp.PARTIMPGROUP
AND tiie.IMPFLDFIELDNAME = adim.BALANCE_COLUMN_NAME
AND tiie.IMPMAPTYPE = 'ERP'
WHERE tpp.PARTITIONKEY = 13
AND adim.BALANCE_COLUMN_NAME IS NOT NULL
AND dim.TARGET_DIMENSION_CLASS_NAME <> 'ICPTRANS'
AND (adim.VALID_FOR_PLAN1 = 1 OR dim.TARGET_DIMENSION_CLASS_NAME = 'LOOKUP')
ORDER BY adim.BALANCE_COLUMN_NAME
2015-04-16 11:37:35,661 DEBUG [AIF]: {'APPLICATION_ID': 28L, 'IMPORT_FROM_SOURCE_FLAG': u'Y', 'PLAN_TYPE': u'PLAN1', 'RULE_NAME': u'HFMAct', 'ACTUAL_FLAG': None, 'IS_INCREMENTAL_LOAD': False, 'EPM_ORACLE_INSTANCE': u'D:\\Oracle\\Middleware\\user_projects\\epmsystem1', 'CATKEY': 2L, 'BAL_SEG_VALUE_OPTION_CODE': None, 'INCLUDE_ADJ_PERIODS_FLAG': u'N', 'PERIOD_MAPPING_TYPE': u'EXPLICIT', 'SOURCE_SYSTEM_TYPE': u'OTHERS', 'CHECK_FLAG': u'N', 'LEDGER_GROUP': None, 'TARGET_APPLICATION_NAME': u'Corp', 'RECALCULATE_FLAG': u'Y', 'SOURCE_SYSTEM_ID': 16L, 'TEMP_DATA_TABLE_NAME': 'TDATASEG_T', 'KK_FLAG': u'N', 'IMPGROUPKEY': None, 'AMOUNT_TYPE': None, 'DATA_TABLE_NAME': 'TDATASEG', 'EXPORT_TO_TARGET_FLAG': u'N', 'JOURNAL_FLAG': None, 'SOURCE_APPLICATION_ID': None, 'DIMNAME_LIST': [u'ACCOUNT', u'ENTITY', u'UD1', u'UD2', u'UD3', u'UD4', u'UD5', u'UD6'], 'FCI_FLAG': 'N', 'IMPSOURCECOAID': 0L, 'TDATAMAPTYPE': 'ERP', 'LAST_UPDATED_BY': u'admin', 'DIMNAME_MAP': {u'UD6': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Generic', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD6', 'DIMENSION_ID': 33L}, u'UD3': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Generic', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD3', 'DIMENSION_ID': 30L}, u'ENTITY': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Entity', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'ENTITY', 'DIMENSION_ID': 26L}, u'UD2': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Generic', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD2', 'DIMENSION_ID': 23L}, u'UD5': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Generic', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD5', 'DIMENSION_ID': 32L}, u'UD4': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Generic', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD4', 'DIMENSION_ID': 31L}, u'ACCOUNT': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Account', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'ACCOUNT', 'DIMENSION_ID': 27L}, u'UD1': {'IMPCONCATCHAR': None, 'TARGET_DIMENSION_CLASS_NAME': u'Version', 'COA_SEGMENT_NAME5': None, 'COA_SEGMENT_NAME1': None, 'COA_SEGMENT_NAME2': None, 'COA_SEGMENT_NAME3': None, 'DIMENSION_FILTER_FLAG': None, 'COA_SEGMENT_NAME4': None, 'DIMNAME': u'UD1', 'DIMENSION_ID': 29L}}, 'TARGET_APPLICATION_TYPE': u'HPL', 'PARTITIONKEY': 13L, 'PARTVALGROUP': u'[NONE]', 'LEDGER_GROUP_CODE': u'NONE', 'INCLUDE_ZERO_BALANCE_FLAG': u'N', 'EXECUTION_MODE': None, 'PLAN_NUMBER': 1L, 'MULTI_PERIOD_FILE_FLAG': None, 'PS_LEDGER': None, 'BALANCE_SELECTION': None, 'IMPGROUPFILETYPE': u'ODI', 'BALANCE_AMOUNT_IS': u'PERIODIC', 'RULE_ID': 31L, 'BALANCE_AMOUNT_BS': u'YTD', 'CURRENCY_CODE': None, 'SOURCE_ADAPTER_FLAG': u'Y', 'BALANCE_METHOD_CODE': None, 'SIGNAGE_METHOD': u'ABSOLUTE', 'WEB_SERVICE_URL': u'http://STAAP1655D.R02.XLGS.LOCAL:6550/aif', 'DATA_LOAD_METHOD': u'CLASSIC_VIA_EPMI', 'PARTTARGETAPPLICATIONID': 28L, 'IMPTARGETSOURCESYSTEMID': 0L}
2015-04-16 11:37:35,661 DEBUG [AIF]: CommData.getRuleInfo - END
2015-04-16 11:37:35,692 DEBUG [AIF]: CommData.insertPeriods - START
2015-04-16 11:37:35,692 DEBUG [AIF]: CommData.getLedgerListAndMap - START
2015-04-16 11:37:35,692 DEBUG [AIF]: CommData.getLedgerSQL - START
2015-04-16 11:37:35,692 DEBUG [AIF]: CommData.getLedgerSQL - END
2015-04-16 11:37:35,692 DEBUG [AIF]:
SELECT COALESCE(br.SOURCE_LEDGER_ID,0) SOURCE_LEDGER_ID
,NULL SOURCE_LEDGER_NAME
,NULL SOURCE_COA_ID
,br.CALENDAR_ID
,NULL SETID
,NULL PERIOD_TYPE
,NULL LEDGER_TABLE_NAME
FROM AIF_BALANCE_RULES br
WHERE br.RULE_ID = 31
2015-04-16 11:37:35,692 DEBUG [AIF]: CommData.getLedgerListAndMap - END
2015-04-16 11:37:35,692 DEBUG [AIF]: doAppPeriodMappingsExist - Corp: Y
2015-04-16 11:37:35,692 DEBUG [AIF]: Period mapping section: ERPI/EXPLICIT/BUDGET/APFY
2015-04-16 11:37:35,692 DEBUG [AIF]:
INSERT INTO AIF_PROCESS_PERIODS (
PROCESS_ID
,PERIODKEY
,PERIOD_ID
,ADJUSTMENT_PERIOD_FLAG
,GL_PERIOD_YEAR
,GL_PERIOD_NUM
,GL_PERIOD_NAME
,GL_PERIOD_CODE
,GL_EFFECTIVE_PERIOD_NUM
,YEARTARGET
,PERIODTARGET
,IMP_ENTITY_TYPE
,IMP_ENTITY_ID
,IMP_ENTITY_NAME
,TRANS_ENTITY_TYPE
,TRANS_ENTITY_ID
,TRANS_ENTITY_NAME
,PRIOR_PERIOD_FLAG
,SOURCE_LEDGER_ID
SELECT DISTINCT brl.LOADID PROCESS_ID
,pp.PERIODKEY PERIODKEY
,prd.PERIOD_ID
,COALESCE(prd.ADJUSTMENT_PERIOD_FLAG, 'N') ADJUSTMENT_PERIOD_FLAG
,COALESCE(prd.YEAR, ppsrc.GL_PERIOD_YEAR,0) GL_PERIOD_YEAR
,COALESCE(prd.PERIOD_NUM, ppsrc.GL_PERIOD_NUM,0) GL_PERIOD_NUM
,COALESCE(prd.PERIOD_NAME, ppsrc.GL_PERIOD_NAME,'0') GL_PERIOD_NAME
,COALESCE(prd.PERIOD_CODE, CAST(COALESCE(prd.PERIOD_NUM, ppsrc.GL_PERIOD_NUM,0) AS VARCHAR(38)),'0') GL_PERIOD_CODE
,(COALESCE(prd.YEAR, ppsrc.GL_PERIOD_YEAR,0) * 10000 + COALESCE(prd.PERIOD_NUM, ppsrc.GL_PERIOD_NUM,0)) GL_EFFECTIVE_PERIOD_NUM
,pp.YEARTARGET YEARTARGET
,pp.PERIODTARGET PERIODTARGET
,'PROCESS_BAL_IMP' IMP_ENTITY_TYPE
,(COALESCE(prd.YEAR, ppsrc.GL_PERIOD_YEAR,0) * 10000 + COALESCE(prd.PERIOD_NUM, ppsrc.GL_PERIOD_NUM,0)) IMP_ENTITY_ID
,COALESCE(prd.PERIOD_NAME, ppsrc.GL_PERIOD_NAME,'0')+' ('+pp.PERIODDESC+')' IMP_ENTITY_NAME
,'PROCESS_BAL_TRANS' TRANS_ENTITY_TYPE
,(COALESCE(prd.YEAR, ppsrc.GL_PERIOD_YEAR,0) * 10000 + COALESCE(prd.PERIOD_NUM, ppsrc.GL_PERIOD_NUM,0)) TRANS_ENTITY_ID
,pp.PERIODDESC TRANS_ENTITY_NAME
,'N' PRIOR_PERIOD_FLAG
,0 SOURCE_LEDGER_ID
FROM (
AIF_BAL_RULE_LOADS brl
INNER JOIN TPOVCATEGORY pc
ON pc.CATKEY = brl.CATKEY
INNER JOIN TPOVPERIODADAPTOR_FLAT_V pp
ON pp.PERIODFREQ = pc.CATFREQ
AND pp.PERIODKEY >= brl.START_PERIODKEY
AND pp.PERIODKEY <= brl.END_PERIODKEY
AND pp.INTSYSTEMKEY = 'Corp'
INNER JOIN TPOVPERIODSOURCE ppsrc
ON ppsrc.PERIODKEY = pp.PERIODKEY
AND ppsrc.MAPPING_TYPE = 'EXPLICIT'
AND ppsrc.SOURCE_SYSTEM_ID = 16
AND ppsrc.CALENDAR_ID IN ('Jan')
LEFT OUTER JOIN AIF_GL_PERIODS_STG prd
ON prd.PERIOD_ID = ppsrc.PERIOD_ID
AND prd.SOURCE_SYSTEM_ID = ppsrc.SOURCE_SYSTEM_ID
AND prd.CALENDAR_ID = ppsrc.CALENDAR_ID
AND prd.ADJUSTMENT_PERIOD_FLAG = 'N'
WHERE brl.LOADID = 309
ORDER BY pp.PERIODKEY
,GL_EFFECTIVE_PERIOD_NUM
2015-04-16 11:37:35,692 DEBUG [AIF]: periodSQL - periodParams: ['N', 'PROCESS_BAL_IMP', 'PROCESS_BAL_TRANS', 0L, u'Corp', u'EXPLICIT', 16L, u'Jan', 'N', 309]
2015-04-16 11:37:35,708 DEBUG [AIF]: CommData.insertPeriods - END
2015-04-16 11:37:35,708 DEBUG [AIF]: CommData.getPovList - START
2015-04-16 11:37:35,708 DEBUG [AIF]:
SELECT DISTINCT brl.PARTITIONKEY, part.PARTNAME, brl.CATKEY, cat.CATNAME, pprd.PERIODKEY
,COALESCE(pp.PERIODDESC, CONVERT(VARCHAR,pprd.PERIODKEY,120)) PERIODDESC
,brl.RULE_ID, br.RULE_NAME, CASE WHEN (tlp.INTLOCKSTATE = 60) THEN 'Y' ELSE 'N' END LOCK_FLAG
FROM AIF_BAL_RULE_LOADS brl
INNER JOIN AIF_BALANCE_RULES br
ON br.RULE_ID = brl.RULE_ID
INNER JOIN TPOVPARTITION part
ON part.PARTITIONKEY = brl.PARTITIONKEY
INNER JOIN TPOVCATEGORY cat
ON cat.CATKEY = brl.CATKEY
INNER JOIN AIF_PROCESS_PERIODS pprd
ON pprd.PROCESS_ID = brl.LOADID
LEFT OUTER JOIN TPOVPERIODADAPTOR pp
ON pp.PERIODKEY = pprd.PERIODKEY
AND pp.INTSYSTEMKEY = 'Corp'
LEFT OUTER JOIN TLOGPROCESS tlp
ON tlp.PARTITIONKEY = brl.PARTITIONKEY
AND tlp.CATKEY = brl.CATKEY
AND tlp.PERIODKEY = pprd.PERIODKEY
AND tlp.RULE_ID = brl.RULE_ID
WHERE brl.LOADID = 309
ORDER BY brl.PARTITIONKEY, brl.CATKEY, pprd.PERIODKEY, brl.RULE_ID
2015-04-16 11:37:35,708 DEBUG [AIF]: CommData.getPovList - END
2015-04-16 11:37:35,708 DEBUG [AIF]: CommData.insertImportProcessDetails - START
2015-04-16 11:37:35,708 DEBUG [AIF]:
INSERT INTO AIF_PROCESS_DETAILS (
PROCESS_ID
,ENTITY_TYPE
,ENTITY_ID
,ENTITY_NAME
,ENTITY_NAME_ORDER
,TARGET_TABLE_NAME
,EXECUTION_START_TIME
,EXECUTION_END_TIME
,RECORDS_PROCESSED
,STATUS
,LAST_UPDATED_BY
,LAST_UPDATE_DATE
SELECT PROCESS_ID
,ENTITY_TYPE
,ENTITY_ID
,ENTITY_NAME
,ENTITY_NAME_ORDER
,'TDATASEG' TARGET_TABLE_NAME
,CURRENT_TIMESTAMP EXECUTION_START_TIME
,NULL EXECUTION_END_TIME
,0 RECORDS_PROCESSED
,'PENDING' STATUS
,'admin' LAST_UPDATED_BY
,CURRENT_TIMESTAMP LAST_UPDATE_DATE
FROM (
SELECT DISTINCT PROCESS_ID
,IMP_ENTITY_TYPE ENTITY_TYPE
,IMP_ENTITY_ID ENTITY_ID
,IMP_ENTITY_NAME ENTITY_NAME
,(COALESCE(SOURCE_LEDGER_ID,0) * 100000000 + GL_EFFECTIVE_PERIOD_NUM) ENTITY_NAME_ORDER
FROM AIF_PROCESS_PERIODS
WHERE PROCESS_ID = 309
) q
ORDER BY ENTITY_NAME_ORDER
2015-04-16 11:37:35,724 DEBUG [AIF]: CommData.insertImportProcessDetails - END
2015-04-16 11:37:35,724 DEBUG [AIF]: Comm.doScriptInit - START
2015-04-16 11:37:35,833 DEBUG [AIF]: fdmContext: {BATCHSCRIPTDIR=D:\Oracle\Middleware\user_projects\epmsystem1\FinancialDataQuality, INBOXDIR=D:\AppFDM\FDMEE\inbox, LOCNAME=HFM_ACT, SOURCENAME=HFMSQL, APPID=28, SOURCEID=16, APPROOTDIR=D:\AppFDM\FDMEE, IMPORTFORMAT=HFMACTUALSQL, SCRIPTSDIR=D:\AppFDM\FDMEE\data\scripts, EPMORACLEHOME=D:\Oracle\Middleware\EPMSystem11R1, TARGETAPPTYPE=HPL, RULEID=31, CATNAME=Actual, EPMORACLEINSTANCEHOME=D:\Oracle\Middleware\user_projects\epmsystem1, LOADID=309, PERIODNAME=Jan-15, IMPORTMODE=null, SOURCETYPE=OTHERS, PERIODKEY=2015-01-31, EXPORTFLAG=N, TARGETAPPDB=PLAN1, TARGETAPPNAME=Corp, LOCKEY=13, RULENAME=HFMAct, OUTBOXDIR=D:\AppFDM\FDMEE\outbox, MULTIPERIODLOAD=N, EXPORTMODE=null, CATKEY=2, USERNAME=admin, FILEDIR=null, IMPORTFLAG=Y, USERLOCALE=null}
2015-04-16 11:37:35,849 DEBUG [AIF]: The executeEventScript is set to: YES
2015-04-16 11:37:35,849 DEBUG [AIF]: The AppRootFolder is set to: D:\AppFDM\FDMEE
2015-04-16 11:37:35,849 DEBUG [AIF]: The JavaHome is set to: %EPM_ORACLE_HOME%/../jdk160_35
2015-04-16 11:37:35,849 DEBUG [AIF]: The OleDatabaseProvider is set to: SQLNCLI
2015-04-16 11:37:35,849 DEBUG [AIF]: Comm.doScriptInit - END
2015-04-16 11:37:35,849 DEBUG [AIF]: Comm.executeScript - START
2015-04-16 11:37:35,849 INFO [AIF]: Executing the following script: D:\AppFDM\FDMEE/data/scripts/event/BefImport.py
2015-04-16 11:37:35,849 ERROR [AIF]: The script has failed to execute:
2015-04-16 11:37:35,895 DEBUG [AIF]: Comm.finalizeProcess - START
2015-04-16 11:37:35,895 DEBUG [AIF]: CommData.updateRuleStatus - START
2015-04-16 11:37:35,895 DEBUG [AIF]:
UPDATE AIF_BALANCE_RULES
SET STATUS = CASE 'FAILED'
WHEN 'SUCCESS' THEN
CASE (
SELECT COUNT(*)
FROM AIF_PROCESS_DETAILS pd
WHERE pd.PROCESS_ID = 309
AND pd.STATUS IN ('FAILED','WARNING')
WHEN 0 THEN 'SUCCESS'
ELSE (
SELECT MIN(pd.STATUS)
FROM AIF_PROCESS_DETAILS pd
WHERE pd.PROCESS_ID = 309
AND pd.STATUS IN ('FAILED','WARNING')
END
ELSE 'FAILED'
END
WHERE RULE_ID = 31
2015-04-16 11:37:35,911 DEBUG [AIF]: CommData.updateRuleStatus - END
2015-04-16 11:37:35,911 FATAL [AIF]: Error in COMM Pre Import Data
2015-04-16 11:37:35,911 DEBUG [AIF]: Comm.updateProcess - START
2015-04-16 11:37:35,911 DEBUG [AIF]: Comm.updateProcess - END
2015-04-16 11:37:35,911 DEBUG [AIF]: The fdmAPI connection has been closed.
2015-04-16 11:37:35,911 INFO [AIF]: FDMEE Process End, Process ID: 309 -
Jython script error..while invoking odi scenario
while running the below jython script i am getting the following error..any idea how to resolve this..not able to find any solution in the net
Jython Script
==========
import os
scen_name="DVM"
scen_ver="001"
odiscen="startcmd.bat OdiStartScen -SCEN_NAME="+scen_name+"-SCEN_VERSION="+scen_ver
if os.system(odiscen) <> 0:
raise odiscen
Error:
====
ODI-1217: Session GetFileNames (412355) fails with return code 7000.
ODI-1226: Step GetFileNames fails after 1 attempt(s).
ODI-1232: Procedure GetFileNames execution fails.
Caused By: org.apache.bsf.BSFException: exception from Jython:
Traceback (most recent call last):
File "<string>", line 6, in <module>
startcmd.bat OdiStartScen -SCEN_NAME=DVM-SCEN_VERSION=001i tried with spaces also..and also added context also in the script..but still getting the same error
import os
scen_name="DVM"
scen_ver="001"
cont="E1APS"
odiscen="startcmd.bat OdiStartScen -SCEN_NAME="+scen_name+" -SCEN_VERSION="+scen_ver+" -CONTEXT="+cont
if os.system(odiscen) <> 0:
raise odiscen -
Jython scripting and ODI variables
Hi,
I've had a look through the documentation but wans't able to find the answer to this, apologies if it's in there.
Some ETL tools that we've used previously have their own scripting language embedded within the tool. This allows us to populate, refresh and evaluate variables within scripts. The values of the variables can then be used with queries as mapping or restrictions in the where clause.
The question I've got is - can ODI variables be used within Jython scripts in a similar way? Can they be passed in, values assigned, returned and used within the project? If not, can this only be achieved through the SQL query that is part of the variable definition.
Hope this question makes sense, it's really a comparison with the scripting language and variables that we use in another tool.
ThanksHello,
I see what you are trying to achieve, and I believe you got it all right.
Variables can be retrieved using the #VARIABLE_NAME expression in Jython scripts, mappings, filters, or anywhere else.
They can be set only
- Through a set variable step to a constant value.
- In a refresh variable step to the (mono-field, mono-record) result of a SELECT statement.
You cannot do in some Jython code something like: #VARIABLE_NAME = myJythonVariable
You'd need to insert the values of your variables in a temporary table (in the Jython script), then refresh the variable from the content of this temporary table.
Regards,
-FX -
Jython script to execute OS Command based on OS
Hi,
Could anyone help me in writing Jython script in ODI to execute a OS command (create a file with list of .csv files available in specified directory) based on the OS on which code is running?
We have DEV and UAT are in Windows environment and Training is in Linux environment.
I tried following http://odiexperts.com/jython-os-bug-in-windows-7/ but I am getting errors like, SyntaxError: ("no viable alternative at character '\x93'", ('<string>', 3, 13, 'os.command(r \x93 copy /r source_path dest_path\x94) \n'))
Please help me and its urgent.
Thanks
MTHi aetl,
Thank you so much for your help!
I am trying with below code
import os
if os._getOsType('') == 'nt':
lv_command = 'dir /a/b > file_name.txt'
else:
lv_command = 'ls -l > file_name.txt'
os.command(lv_command)
but I am getting error as
org.apache.bsf.BSFException: exception from Jython:
Traceback (most recent call last):
File "<string>", line 2, in <module>
AttributeError: 'module' object has no attribute '_getOsType'
Please help me.
Regards
MT -
Hi,
I have a requirement where I want to leverage a jython script to solve a business problem (breaking a semicolon separated string into tokens). I will be calling this script from ODI.
Do I need to download the jython interpreter for testing my script before I use it in ODI?
How do call the script from ODI ?Hi,
Isn't possible to you create the script at ODI procedure and execute it from ODI? I mean, write the jython code at ODI.
A good example in how to use jython can be found at the LKM SQL to SQL (Jython) -
FDMEE Jython Import Script - Split field function
Hi folks,
I have to admit, this Jython gives me heavy headaches!
Actually it is a simple challenge, but I am struggling around with it for hours now. Perhaps one of you guys can help.
I want to create an Import Script in FDMEE 11.1.2.3.500.17. The source file (tab delimited) contains a column with following entries:
What I want to achieve in the first instance is to import the figure after the first dot. E.g. from H-00275A.3.4.1 I want to import the 3.
I have written an import script, based on a sample script written in FDMEE admin guide (page 273):
I have assigned that script to the respective column in the Import Format:
Seems easy. But for whatever reasons it does not work. The problem is: even the log file is not helping, as it seems to be endlessly growing when I want to open it (after becoming 30MB I canceled). By the way: without that script Import works.
Any ideas? Help is much appreciated!
Cheers
CarmonteDear SH,
You are right! I am such an idiot!
I have spent almost a day with troubleshooting. And in the end it was just one letter that I have overlooked, even though I have checked it thousand times!
I know that function name and script name has to be in line. Parce vs Parse won't work of course.
It works now!
Thanks a ton for your help. You saved my day!
Cheers
Carmonte -
Issue with FDMEE custom script
Hi All,
I have written a custom script in FDMEE which pulls data from Oracle DB and writes it to a file in FDMEE App Inbox folder. This script is working perfectly in FDM where in I see file getting generated in Inbox folder. But, when I try to execute the same script in FDMEE, it is not working even though it is not giving any error.
All I changed in the script is API syntax which is specific to FDMEE. Can any one please let me know what is that I am missing here..I am using this script to test FDMEE connectivity to DB.
Below is the script:
Sub TEST_MAPS()
'Oracle Hyperion FDM Custom Script:
'Purpose:
'Variable Declaration
Dim SQLRes
Dim objfso
Dim strFile
Dim strLoadFile
Const ForReading = 1
Const ForWriting = 2
Const adVarChar = 200
Const MaxCharacters = 255
Const adFldIsNullable = 32
'Initialize objects
Set cnSS = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
'Connect to Oracle database
cnss.open "Provider=ORAOLEDB.ORACLE;Data Source=ds1;User ID=app;Password=xxxx"
SQLRes = "Select * from ENTITY_MAP"
'command for executing the query
cnss. Execute SQLRes
'Creates a .tra file in the below mentioned path
strFile= fdmAPI.API.DataWindow.Connection.PstrDirInbox & "\Entity.tra"
rs.open SQLRes,cnSS
'Copy data from table to text file
'Initialize the object for opening a text file for writing
Set objfso = CreateObject("Scripting.FileSystemObject")
Set objWFile = objfso.OpenTextFile(strFile, ForWriting,True)
'Loop
With rs
'Open the file for writing, overwriting if it exists
Do While Not .EOF
objWFile.Write .GetString(2,,",",vbCrLf)' Write the records to file
Loop
'End If
.Close
End With
End Sub
Below is the log:
2015-02-24 15:41:38,991 INFO [AIF]: FDMEE Process Start, Process ID: 13,949
2015-02-24 15:41:38,991 INFO [AIF]: FDMEE Logging Level: 5
2015-02-24 15:41:38,991 INFO [AIF]: FDMEE Log File: \\app\FDMEEData\HFMCA\\outbox\logs\HFMCA_13949.log
2015-02-24 15:41:38,991 INFO [AIF]: User:502376825
2015-02-24 15:41:38,991 INFO [AIF]: Location:null (Partitionkey:null)
2015-02-24 15:41:38,991 INFO [AIF]: Period Name:null (Period Key:null)
2015-02-24 15:41:38,991 INFO [AIF]: Category Name:null (Category key:null)
2015-02-24 15:41:38,991 INFO [AIF]: Rule Name:TEST_MAPS (Rule ID:10,162)
2015-02-24 15:41:41,003 INFO [AIF]: Jython Version: 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
[Oracle JRockit(R) (Oracle Corporation)]
2015-02-24 15:41:41,003 INFO [AIF]: Java Platform: java1.6.0_37
2015-02-24 15:41:41,003 INFO [AIF]: Log File Encoding: US-ASCII
2015-02-24 15:41:41,440 DEBUG [AIF]: CommProcess.executeCustomScript - START
2015-02-24 15:41:41,440 DEBUG [AIF]: customScriptName: TEST_MAPS.vbs
2015-02-24 15:41:41,456 DEBUG [AIF]:
INSERT INTO AIF_PROCESS_DETAILS (
PROCESS_ID
,ENTITY_TYPE
,ENTITY_ID
,ENTITY_NAME
,ENTITY_NAME_ORDER
,TARGET_TABLE_NAME
,EXECUTION_START_TIME
,EXECUTION_END_TIME
,RECORDS_PROCESSED
,STATUS
,LAST_UPDATED_BY
,LAST_UPDATE_DATE
) VALUES (
13949
,'PROCESS_CUSTOM_SCRIPT'
,NULL
,'TEST_MAPS.vbs'
,NULL
,NULL
,CURRENT_TIMESTAMP
,NULL
,NULL
,'RUNNING'
,'458790678' ,CURRENT_TIMESTAMP
2015-02-24 15:41:41,487 DEBUG [AIF]: Comm.doScriptInit - START
2015-02-24 15:41:41,768 DEBUG [AIF]: fdmContext: {BATCHSCRIPTDIR=E:\Oracle\Middleware\user_projects\app\FinancialDataQuality, SCRIPTFILE=TEST_MAPS.vbs, INBOXDIR=\\app\FDMEEData\HFMCA\\inbox, TARGETAPPDB=NA, TARGETAPPNAME=HFMCA, APPID=57, RULENAME=TEST_MAPS, OUTBOXDIR=\\app\FDMEEData\HFMCA\\outbox, SCRIPTSDIR=\\app\FDMEEData\HFMCA\\data\scripts, EPMORACLEHOME=E:\Oracle\Middleware\EPMSystem11R1, RULEID=10162, EPMORACLEINSTANCEHOME=E:\Oracle\Middleware\user_projects\app, LOADID=13949}
2015-02-24 15:41:41,768 DEBUG [AIF]: The EpmOracleHome is set to: E:\Oracle\Middleware\EPMSystem11R1
2015-02-24 15:41:41,768 DEBUG [AIF]: The EpmOracleInstance is set to: E:\Oracle\Middleware\user_projects\app
2015-02-24 15:41:41,768 DEBUG [AIF]: The JavaHome is set to: %EPM_ORACLE_HOME%/../jdk160_35
2015-02-24 15:41:41,768 DEBUG [AIF]: The executeEventScript is set to: YES
2015-02-24 15:41:41,768 DEBUG [AIF]: The OleDatabaseProvider is set to: ORAOLEDB.ORACLE
2015-02-24 15:41:41,768 DEBUG [AIF]: The AppRootFolder is set to: \\app\FDMEEData\HFMCA\
2015-02-24 15:41:41,768 DEBUG [AIF]: Comm.doScriptInit - END
2015-02-24 15:41:41,768 DEBUG [AIF]: Comm.executeCustomScript - START
2015-02-24 15:41:41,799 DEBUG [AIF]: Comm.executeVBScript - START
2015-02-24 15:41:41,799 DEBUG [AIF]: The WindowsTempFolder is set to: c:\users\r00257~1\appdata\local\temp
2015-02-24 15:41:41,799 INFO [AIF]: Executing the following script: \\app\FDMEEData\HFMCA\\data\scripts\custom\TEST_MAPS.vbs
2015-02-24 15:41:41,799 DEBUG [AIF]: The command to be executed is:
cscript \\app\FDMEEData\HFMCA\\data\scripts\custom\TEST_MAPS.vbs "13949" "****" "E%3A%5COracle%5CMiddleware%5Cuser_projects%5Capp" "%25EPM_ORACLE_HOME%25%2F..%2Fjdk160_35" "ORAOLEDB.ORACLE"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
2015-02-24 15:41:41,939 DEBUG [AIF]: Comm.executeVBScript - END
2015-02-24 15:41:41,939 DEBUG [AIF]: Comm.executeCustomScript - END
2015-02-24 15:41:41,939 DEBUG [AIF]:
UPDATE AIF_PROCESS_DETAILS
SET STATUS = 'SUCCESS'
,RECORDS_PROCESSED = CASE
WHEN RECORDS_PROCESSED IS NULL THEN 0
ELSE RECORDS_PROCESSED
END + NULL
,EXECUTION_END_TIME = CURRENT_TIMESTAMP
,LAST_UPDATED_BY = CASE
WHEN ('502376825' IS NULL) THEN LAST_UPDATED_BY
ELSE '502376825'
END
,LAST_UPDATE_DATE = CURRENT_TIMESTAMP
WHERE PROCESS_ID = 13949
AND ENTITY_TYPE = 'PROCESS_CUSTOM_SCRIPT'
AND ENTITY_NAME = 'TEST_MAPS.vbs'
2015-02-24 15:41:41,939 DEBUG [AIF]: CommProcess.executeCustomScript - ENDHi,
If you're using CUE, there is a step called "Dial By Extension Menu", this should solve your problem.
If you're using UCCX (or CUE and don't have this step) you can do the following:
In the Get Digit String branch Timeout, use an If statement that check if the Number entered was "1" then Call Redirect to Technical Departement Number, else Call Redirect to Operator Extension.
It should appear like this:
Extension = Get Digit String
Timeout
if (Extension == "1")
True
Call Redirect to Technical
False
Call Redirect to Operator
Hope This Helps, -
Jython script for loading memos
Dear All,
Has anybody tried loading memos using jython import scripts in fdmee??Have you bothered to look in the help files where they give
you examples?
And if so, make sure you note the difference between loading
a Flash movie
(SWF), and loading video (FLV)
Jeckyl -
Invoking Essbase calcscript using FDMEE import scripts
Hi Team ,
I am trying to run an essbase calc script on the event of validate in FDMEE . Can i call essbase script from an event script in fdmee and pass the parameters to run the essbase script .
I know we have an option to call calc scripts before and after data load but that option is not helping my solution. Suggestions please friends.
Regards,
Roshin RasheedI agree that the AftValidate time is an unusual time to call it, but the basic logic would be as follow:
FDMEE calls a .bat file
the .bat file calls a MaxL script
the MaxL script does whatever you want the script to do.
In our example, we're using it as a BefImport script that calls a MaxL script to export data to a database that the remainder of the BefImport script then grabs for the Import process.
Not sure why you would need that on Validate, but the same concept could apply. -
Jython scripts fails from cmd line Error: no domain or domain template...
--------------script---------------
connect('weblogic','welcome1','t3://obi5.mnapps.state.mn.us:7101',adminServerName='AdminServer');
print 'Connecting to Domain ...'
try:
domainCustom()
except:
print 'Already in domainCustom'
cd('..\..')
print 'Go to biee admin domain'
cd('oracle.biee.admin')
print 'Go to coreapplication_obips1 Mbean'
cd('oracle.biee.admin:oracleInstance=EPM91TD,type=BIDomain.BIInstanceDeployment.BIComponent,biInstance=coreapplication,process=coreapplication_obis1,group=Service')
------------script end---------------------
---works fine if it start wlst and type commands
when runing "java weblogic.WLST RestartOBI.py"
-----------------------------output from command line execution--------------------------
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Error: No domain or domain template has been read.
Connecting to Domain ...
You will need to be connected to a running server to execute this command
Go to biee admin domain
Error: No domain or domain template has been read.
Go to coreapplication_obips1 Mbean
ThanksAlso, you must put the parameters of the net use command in the correct order.
C:\>net help localgroup
The syntax of this command is:
NET LOCALGROUP
[groupname [/COMMENT:"text"]] [/DOMAIN]
groupname {/ADD [/COMMENT:"text"] | /DELETE} [/DOMAIN]
groupname name [...] {/ADD | /DELETE} [/DOMAIN]
This help information tells you that you put the group name first after the words
net localgroup. As Forest brook pointed out, if the group name contains spaces, you must enclose it in quotes.
After the group name, put the name of the user or group you want to add to (or remove from) the local group. If the user or group name contains spaces, as noted, you must enclose it in quotes. After this group name, put the parameter
/ADD to add to the local group, or put /DELETE to remove.
For example, suppose you want to add the domain group FABRIKAM\Account Operators to the local Administrators group. This is the command you would enter:
C:\> net localgroup Administrators "FABRIKAM\Account Operators" /add
This command adds FABRIKAM\Account Operators to the local Administrators group.
In your specific case, it looks like the command would be:
C:\> net localgroup Administrators "XYZ\Desktop Administrator" /delete
Bill -
How to compile and execute a Jython script with parameters (?)
I am writing a scripting extension mechanism for a big server project we've built over the last year and a half.
What I want to acheive is:
- system authors upload scripts (via a web front end)
- the system checks and compiles the script
- stashes the compiled script away against a named event.
When the event occurs the compiled script is called by the server with a list of parameters (current user id, various numbers describing the system state).
Now I can upload and compile the script just fine using :
PyCode somePyCode = __builtin__.compile ( script, "<>", "exec");
...and deal with any errors ...and stash the script away against a named event...etc.
And it is easy enough to call this code with
aPythonInterpreterInstance.exec ( somePyCode );
but that doesn't pass my parameters through.
It seems to me there's three obvious ways to do this:
(1) specify that each script has a named target:
def onEvent(eventid , userid):
... and use one of the PyCode.call() methods
- but these aren't sensibly documented in the javadocs so it could take a while to figure out what's really going on.
(2) specify that each script contains a class def and implements a __call__ method - but I can't see how to get the PyClass object out of the PyCode object returned by __builtin__.compile
(3) put the variables into the local namespace and then execute the script (without a named method or class) - but this means that I would have to clean down the local namespace each time (- and anyway what is it local to?).
(Did I mention execution speed is important to this app and I need to service multiple threads?)
Thanks in advance,
Tony
ps. hope this isn't o/t to you.Some days you just know the synapses aren't talking.
Of course when you exec() py code with def'd functions and class definitions in you're not executing the function(s) but defining them. Meaning that my question was all back to front in the first place.
All four copies. -
Import subprocess in jython script invoked with WLST
Weblogic 10.3.6
I'm trying to figure out if it's impossible for me to use subprocess.pipe and popen when Im invoking the script with WLST. It says there's no module of subprocess. Works fine running it as a python script.
Thanks!i tried with spaces also..and also added context also in the script..but still getting the same error
import os
scen_name="DVM"
scen_ver="001"
cont="E1APS"
odiscen="startcmd.bat OdiStartScen -SCEN_NAME="+scen_name+" -SCEN_VERSION="+scen_ver+" -CONTEXT="+cont
if os.system(odiscen) <> 0:
raise odiscen
Maybe you are looking for
-
Adobe acrobat x pro can't install
Hi, I've managed to install all the elements of the CS5 suite (thanks to manish!), but the acrobat pro x still refuses to install. I'm getting a message that my system doesn't comply with the minimal requirements, but I've checked them out, and ever
-
Attribute in web dynpro context of type binary?
I'm in the process of creating an ADOBE PDF based form in web dynpro. I'm using a step by step guide and it's asking me to create an attribute In the context root to hold the PDFsource. I'm suppose to enter the type as BINARY but it does not exist
-
E63 wont connect to computer in media transfer mod...
Can anyone help, when i plug my E63 by usb to my computer and chose media transfer mode my computer no longer reads that its pluged in
-
Searching for instances using getIntancesByFilter and ClientProcessService
I am trying to get an array of all instances in a process so I can get some the data and use it to populate some dropdowns. I am using a custom, AJAX-enabled JSF presentation to call a server-side-no method in my component model. My code looks like t
-
Edit Motion project as Motion template in FCP timeline?
Hi, I'd like to know is it possible to turn basic Motion project into Motion template in Final Cut Pro timeline? If not possible I think this would be a great feature because it simply takes too much time to copy motion projects for example to 10 edi