Project TNI
Saturday, March 17, 2018
Friday, November 10, 2017
HFM (EPMA) Taskflows in Tasklist
Problem Area: Inorder to execute or manage a taskflow, one has to navigate through EPMA or Consolidation Administration (in HFM 11.1.2.3). Opening taskflow page directly from HFM tasklist is simple and convenient.
1. Taskflow is module of EPMA. To get a list of EPMA modules that can be directly opened from Tasklist go to:
http://<server>:19091/awb/conf/AwbConfig.xml
...
- <!-- ADS Ends
-->
<module id="awb.smartlist" namespace="com.hyperion.awb.web.smartlist" adfUri="Adf.do" handlerClass="Handler" helpIndexUri="launch.html" />
<module id="awb.upgrade" namespace="com.hyperion.awb.web.upgrade" adfUri="Adf.do" handlerClass="Handler" helpUri="epma_app_upgrade.html" helpBasePath="." helpWindow="EPMA" helpIndexUri="launch.html" />
<module id="awb.taskflow" namespace="com.hyperion.awb.web.taskflow" adfUri="Adf.do" handlerClass="Handler" singleton="true" helpUri="epma_taskflows.html" helpBasePath="." helpWindow="EPMA" helpIndexUri="launch.html" />
</modules>
</config>
...
2. Create a new 'Link' in HFM with the following URL:
http://<server>:19000/workspace/index.jsp?module=awb.taskflow
3. Add the 'Link' to the Tasklist:
Note: This by default shows the status page of tasflow. To execute/manage the taskflow click, Administration > Manage Taskflow
Note 2: Here is good guide to configuring taskflow roles for individual taskflows by creating new roles and using assign control: https://ranzal.wordpress.com/tag/taskflow/
1. Taskflow is module of EPMA. To get a list of EPMA modules that can be directly opened from Tasklist go to:
http://<server>:19091/awb/conf/AwbConfig.xml
...
- <!-- ADS Ends
-->
<module id="awb.smartlist" namespace="com.hyperion.awb.web.smartlist" adfUri="Adf.do" handlerClass="Handler" helpIndexUri="launch.html" />
<module id="awb.upgrade" namespace="com.hyperion.awb.web.upgrade" adfUri="Adf.do" handlerClass="Handler" helpUri="epma_app_upgrade.html" helpBasePath="." helpWindow="EPMA" helpIndexUri="launch.html" />
<module id="awb.taskflow" namespace="com.hyperion.awb.web.taskflow" adfUri="Adf.do" handlerClass="Handler" singleton="true" helpUri="epma_taskflows.html" helpBasePath="." helpWindow="EPMA" helpIndexUri="launch.html" />
</modules>
</config>
...
2. Create a new 'Link' in HFM with the following URL:
http://<server>:19000/workspace/index.jsp?module=awb.taskflow
3. Add the 'Link' to the Tasklist:
Note: This by default shows the status page of tasflow. To execute/manage the taskflow click, Administration > Manage Taskflow
Note 2: Here is good guide to configuring taskflow roles for individual taskflows by creating new roles and using assign control: https://ranzal.wordpress.com/tag/taskflow/
Saturday, August 19, 2017
Mounting a new partition [Ubuntu]
1. Create partition using fdisk.
I created a new parition, primary.
lsblk (to see partitions)
2. Format partition to Ext4
sudo mkfs.ext4 /dev/sda4
3.Get UUID for partition
sudo blkid
4. Make directory to mount partition
mkdir /partition
4. Append to /etc/fstab
sudo nano /etc/fstab
UUID=foo-bar /partition ext4 defaults 0 1
5. Reboot system
6. Alternatively mkdir and chown for user access
I created a new parition, primary.
lsblk (to see partitions)
2. Format partition to Ext4
sudo mkfs.ext4 /dev/sda4
3.Get UUID for partition
sudo blkid
4. Make directory to mount partition
mkdir /partition
4. Append to /etc/fstab
sudo nano /etc/fstab
UUID=foo-bar /partition ext4 defaults 0 1
5. Reboot system
6. Alternatively mkdir and chown for user access
Tuesday, April 18, 2017
Excel cheatsheet
Go to referenced cell:
Ctrl + [ : Go to precedent cell
Ctrl + ] : Go to dependent cell
Ref:http://windowssecrets.com/forums/showthread.php/111721-Go-To-Referenced-Cell-(Excel-2003-SP2)
Concatenate cells faster:
Ctrl + Select Cells
Use with =CONCATENATE()
It will insert cells separated by comma
Ref: https://www.excelcampus.com/keyboard-shortcuts/concatenate-range-of-cells/
Copy Text from cell:
e.g. 123 - String of lines
=MID(A1,1+FIND("-",A1),LEN(A1))
FIND() will look for "-"
MID() will start from one character after "-" and end after length of cell
Use with =TRIM() to remove trailing space
Ref: https://fiveminutelessons.com/learn-microsoft-excel/extract-text-cell-excel
Autofill Shortcut:
Create a sequence e.g. A01, A02, A03
Select the sequence with extra blank cells to extrapolate
Alt + E + I + S > Type : AutoFill
Sum Shortcut:
Alt + =
This inserts the sum function. Now just select the range.
Calculate Sum of filtered cells:
=SUBTOTAL(9,CN8:CN194)
9 - Function for Sum
The SUBTOTAL function ignores any rows that are not included in the result of a filter, no matter which function_num value you use
Ref: https://support.office.com/en-us/article/SUBTOTAL-function-7B027003-F060-4ADE-9040-E478765B9939
Calculate Sum based on Criteria:
=SUMIF($C$8:$C$172,$B200,E$8:E$172)
Range: C8:C172 (e.g. Automotive, Realty, Others..)
Criteria: B200 (e.g. Automotive)
Sum Range: E8:E172 (e.g. Values adjacent to Automotive)
SUMIF function is used to sum the values in a range that meet criteria that you specify
Ref:https://support.office.com/en-us/article/SUMIF-function-169B8C99-C05C-4483-A712-1697A653039B
Convert Number to Text:
=TEXT(A1,"0")
Useful when doing a VLOOKUP with text values.
E.g read number 100 as text 100
Ctrl + [ : Go to precedent cell
Ctrl + ] : Go to dependent cell
Ref:http://windowssecrets.com/forums/showthread.php/111721-Go-To-Referenced-Cell-(Excel-2003-SP2)
Concatenate cells faster:
Ctrl + Select Cells
Use with =CONCATENATE()
It will insert cells separated by comma
Ref: https://www.excelcampus.com/keyboard-shortcuts/concatenate-range-of-cells/
Copy Text from cell:
e.g. 123 - String of lines
=MID(A1,1+FIND("-",A1),LEN(A1))
FIND() will look for "-"
MID() will start from one character after "-" and end after length of cell
Use with =TRIM() to remove trailing space
Ref: https://fiveminutelessons.com/learn-microsoft-excel/extract-text-cell-excel
Autofill Shortcut:
Create a sequence e.g. A01, A02, A03
Select the sequence with extra blank cells to extrapolate
Alt + E + I + S > Type : AutoFill
Sum Shortcut:
Alt + =
This inserts the sum function. Now just select the range.
Calculate Sum of filtered cells:
=SUBTOTAL(9,CN8:CN194)
9 - Function for Sum
The SUBTOTAL function ignores any rows that are not included in the result of a filter, no matter which function_num value you use
Ref: https://support.office.com/en-us/article/SUBTOTAL-function-7B027003-F060-4ADE-9040-E478765B9939
Calculate Sum based on Criteria:
=SUMIF($C$8:$C$172,$B200,E$8:E$172)
Range: C8:C172 (e.g. Automotive, Realty, Others..)
Criteria: B200 (e.g. Automotive)
Sum Range: E8:E172 (e.g. Values adjacent to Automotive)
SUMIF function is used to sum the values in a range that meet criteria that you specify
Ref:https://support.office.com/en-us/article/SUMIF-function-169B8C99-C05C-4483-A712-1697A653039B
Convert Number to Text:
=TEXT(A1,"0")
Useful when doing a VLOOKUP with text values.
E.g read number 100 as text 100
Saturday, September 24, 2016
Configure opensource driver for Radeon HD 7950 on Ubuntu 16.04
$ sudo apt-get remove fglrx*
$ sudo apt-get purge fglrx*
Opensource drivers should be installed by default,
If not installed you can use the following command:
$ sudo apt-get install xserver-xorg-video-ati
$ xrandr -q
Xrandr was not able to recognize my graphic card.
So I used this trick from ubuntu wiki.
$ cd /usr/share/X11/xorg.conf.d/
$ sudo nano
99-vesahack.conf
...
Section "Device"
Identifier "Screen0"
VideoRam 10000
EndSection
...
$ sudo reboot
Optional fix resolution for grub.
You might need to try 'vbeinfo' in grub to see what resolutions are supported.
$ sudo nano /etc/default/grub
...
GRUB_GFXMODE=1920x1080
...
$ sudo update-grub
Update:
Purge command removed fglrx-core and flgrx which was causing a conflict.
Xrandr is able to recognize the graphic card, so 99-vesahack.conf is removed.
Ref:
http://askubuntu.com/questions/159586/how-to-install-radeon-open-source-driver#277500
https://wiki.ubuntu.com/X/Config/Resolution
Labels:
16.04,
Drivers,
Radeon HD 7950,
Ubuntu,
xorg
Thursday, September 22, 2016
Configure Prosody 0.9 for ChatSecure iOS push notifications
ChatSecure iOS now supports push notifications (XEP- 0357). Some limitations include limited to single client use and dependency on ChatSecure Push Server. However, this is good step forward and I welcome it.
Good Read: https://github.com/ChatSecure/ChatSecure-Push-Server/tree/master/docs/v3
Included below is a brief guide to set up SSL which is a requirement for being able to send push notifications. Self signed certificates did not work for me. Please read reference for more info.
Make directory for non core modules:
# cd /etc/prosody/
# mkdir noncoremodules
# chown root:prosody noncoremodules/
Download mod_cloud_notify:
# cd /etc/prosody/noncoremodules/
# wget https://hg.prosody.im/prosody-modules/raw-file/tip/mod_cloud_notify/mod_cloud_notify.lua
(Alternate method in References)
Edit prosody config file:
Global Section
# cd /etc/prosody
# nano prosody.cfg.lua
...
modules_enabled = {
-- Non core plugins
"cloud_notify"; -- Push Notifications
};
...
...
plugin_paths = { "/etc/prosody/noncoremodules/" } -- Path to non-core plugins
...
(Note the module name is written as cloud_notify not mod_cloud_notify)
SSL using StartSSL:
Start the 'Validation Wizard' and validate your VirtualHost/Domain through email. We will use 'example.com' as the VirtualHost.
Start the 'Certification Wizard' for example.com
Generate CSR using prosodyctl on server
# prosodyctl cert request example.com
# cd /var/lib/prosody
# cat example.com.req
Copy to CSR Box and run. Download Certificates zip file.
Extract OtherServer.zip
1_Intermediate.crt
2_example.com.crt
root.crt
$ cat 1_Intermediate.crt >> 2_example.com.crt
$ scp 2_example.com.crt root@example.com:/var/lib/prosody/
(Intermediate certificate needs to be appended main certificate. Since I downloaded on my personal laptop I needed to scp the file to the server. This is not needed if the files are downloaded directly to server)
# chown prosody:prosody 2_example.com.crt
# chmod 600 2_example.com.crt
Edit prosody config file:
VirtualHost Section
# nano /etc/prosody/prosody.cfg.lua
...
VirtualHost "example.com"
enabled = true
ssl = {
key = "/var/lib/prosody/example.com.key";
certificate = "/var/lib/prosody/2_example.com.crt";
}
...
Restart Prosody
# sudo -u prosody prosodyctl start
References:
https://prosody.im/doc/installing_modules#prosody-modules
https://prosody.im/doc/certificates
https://github.com/ChatSecure/ChatSecure-iOS/issues/557
Good Read: https://github.com/ChatSecure/ChatSecure-Push-Server/tree/master/docs/v3
Included below is a brief guide to set up SSL which is a requirement for being able to send push notifications. Self signed certificates did not work for me. Please read reference for more info.
Make directory for non core modules:
# cd /etc/prosody/
# mkdir noncoremodules
# chown root:prosody noncoremodules/
Download mod_cloud_notify:
# cd /etc/prosody/noncoremodules/
# wget https://hg.prosody.im/prosody-modules/raw-file/tip/mod_cloud_notify/mod_cloud_notify.lua
(Alternate method in References)
Edit prosody config file:
Global Section
# cd /etc/prosody
# nano prosody.cfg.lua
...
modules_enabled = {
-- Non core plugins
"cloud_notify"; -- Push Notifications
};
...
...
plugin_paths = { "/etc/prosody/noncoremodules/" } -- Path to non-core plugins
...
(Note the module name is written as cloud_notify not mod_cloud_notify)
SSL using StartSSL:
Start the 'Validation Wizard' and validate your VirtualHost/Domain through email. We will use 'example.com' as the VirtualHost.
Start the 'Certification Wizard' for example.com
Generate CSR using prosodyctl on server
# prosodyctl cert request example.com
# cd /var/lib/prosody
# cat example.com.req
Copy to CSR Box and run. Download Certificates zip file.
Extract OtherServer.zip
1_Intermediate.crt
2_example.com.crt
root.crt
$ cat 1_Intermediate.crt >> 2_example.com.crt
$ scp 2_example.com.crt root@example.com:/var/lib/prosody/
(Intermediate certificate needs to be appended main certificate. Since I downloaded on my personal laptop I needed to scp the file to the server. This is not needed if the files are downloaded directly to server)
# chown prosody:prosody 2_example.com.crt
# chmod 600 2_example.com.crt
Edit prosody config file:
VirtualHost Section
# nano /etc/prosody/prosody.cfg.lua
...
VirtualHost "example.com"
enabled = true
ssl = {
key = "/var/lib/prosody/example.com.key";
certificate = "/var/lib/prosody/2_example.com.crt";
}
...
Restart Prosody
# sudo -u prosody prosodyctl start
References:
https://prosody.im/doc/installing_modules#prosody-modules
https://prosody.im/doc/certificates
https://github.com/ChatSecure/ChatSecure-iOS/issues/557
Friday, September 2, 2016
Error: ORA-28001: the password expried (OracleDB Schema Password)
Symptoms:
Oracle Hyperion Financial Management, managed services stopping immediately after starting
Logs:
C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\HFMWeb0\logs\HFMWeb0
Solution 1:
Shutdown Hyperion Services make changes using SQL plus and then restart services.
SQL> connect sys@HYPDB as sysdba
(Note: Your database name might be different)
(e.g. Database: HYPDB, HFM Schema: HFMDB)
SQL> select username, account_status from dba_users;
(Check is user account is expired/locked)
SQL> alter user HFMDB identified by Password123;
(Update expired password)
SQL> alter user HFMDB account unlock;
(Unlock locked account)
Solution 2:
Set schema to never expire
Ref: https://stackoverflow.com/questions/1095871/how-do-i-turn-off-oracle-password-expiration#6777079
(Note the profile name for the schema. My case its DEFAULT)
(Double check if change is made)
(Note schema will still show expired. So follow Solution 1 last two steps)
Oracle Hyperion Financial Management, managed services stopping immediately after starting
Logs:
C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\HFMWeb0\logs\HFMWeb0
####<Sep 2, 2016 10:14:00 AM IST> <Error> <Deployer> <WIN-2GMS0JCRA42> <HFMWeb0> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1472791440187> <BEA-149205> <Failed to initialize the application 'hfm_datasource' due to error weblogic.application.ModuleException: .
weblogic.application.ModuleException:
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:327)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:47)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:649)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:44)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:55)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:40)
at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:22)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:166)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired
Solution 1:
Shutdown Hyperion Services make changes using SQL plus and then restart services.
SQL> connect sys@HYPDB as sysdba
(Note: Your database name might be different)
(e.g. Database: HYPDB, HFM Schema: HFMDB)
SQL> select username, account_status from dba_users;
(Check is user account is expired/locked)
...
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
HFMDB EXPIRED & LOCKED
FDMEEDB EXPIRED & LOCKED
HSSDB EXPIRED & LOCKED
EPMADB EXPIRED & LOCKED
...
SQL> alter user HFMDB identified by Password123;
(Update expired password)
SQL> alter user HFMDB account unlock;
(Unlock locked account)
Solution 2:
Set schema to never expire
Ref: https://stackoverflow.com/questions/1095871/how-do-i-turn-off-oracle-password-expiration#6777079
SQL>
select profile, username from DBA_USERS;
(Note the profile name for the schema. My case its DEFAULT)
SQL> alter profile DEFAULT limit password_life_time UNLIMITED;
SQL> select resource_name,limit from dba_profiles where profile='DEFAULT';
(Double check if change is made)
(Note schema will still show expired. So follow Solution 1 last two steps)
Subscribe to:
Posts (Atom)