Thanks. I assume that to do what I want I would need two copies of workflow and using Custom Schedule I would set one workflow to one schedule and the other to its schedule.
Exactly. in a single workflow it is not possible to set 2 schedulers. So for your requirement ideal solution would be to create 2 copies of workflows.
You can write a shell script using pmcmd command and schedule that shell script at unix level.
In Informatica, you can schedule the workflow to run continuously for each hour and create a link condition to check for the required time.
For example, you want to schedule the workflow at 9AM and 5PM then the link condition would be like:
GET_DATE_PART(input_dt,'HH24')=9 OR GET_DATE_PART(input_dt,'HH24')=17
I hope this helps you.
One of the options would be to have a second instance of the same workflow to run on 1st and 15th of the month.It's easier to maintain metadata lineage this way.
Not necessary, you can do that in one single workflow without any additional scripts, duplicates, or whatever.
For this description I assume that you want to run the workflow at 5:30 a.m. on most days and on 7 p.m. on a few days.
Schedule the workflow to run every half hour all day long and each day per month.
Insert a new first session into the workflow. Let's assume this session is named s_m_check_time.
In this session, check whether the current time and date is one of the scheduling times. This can be done in standard mapping logic, e.g. using the Transformation Language.
If the current date / time is one of the schedule times, then produce one output record to file /dev/null on Linux/Unix resp. $PMTargetFileDir\NUL on Windows.
If the current date / time is NOT one of the schedule times, do NOT produce any output record.
Now set up a workflow link from this session to the first "real" working session of your workflow; the link condition simply has to check whether the new first session produced any output (meaning it's one of the proposed scheduling times):
$s_m_check_times.TgtSuccessRows > 0
(don't nail me down on the exact syntax, please look it up in the expression editor of the workflow link condition)
If more than one session has to be executed in that workflow, then make sure that each workflow link has a condition checking that $s_m_check_times.TgtSuccessRows > 0 , otherwise some of the sessions would be executed even though they should not.