Integration

Get Involved. Join the Conversation.

Topic

    Punit Desai
    Oracle Integration:Error ESS-09406 while Validating iCal...Answered
    Topic posted October 17, 2019 by Punit DesaiGreen Ribbon: 100+ Points, tagged Cloud, Integration, Orchestration, PaaS 
    50 Views, 4 Comments
    Title:
    Oracle Integration:Error ESS-09406 while Validating iCal Expression
    Summary:
    Unable to use BYMONTH AND BYDAY in the same iCal
    Content:

    Hi

    I have the Scheduling requirement in OIC which is as follows;

    Integration Schedule – If 1st falls on a Wednesday, Thursday, Friday, Saturday, Sunday and Monday the file can be loaded as per the 8 AM schedule.
    If 1st falls on a Tuesday, then this job has to be put on hold and will be processed on the following Wednesday 8 AM

    can some suggest a Solution to Schedule my OIC Integration as per above schedule.

    Thanks
    Punit

     

    Best Comment

    Hemanth Lakkaraju

    There is no direct way with an expression to achieve this as some of the constructs of iCal expression are not supported yet.

    Few ways to achieve this is:

    • Create a Monthly Schedule for 1st of every month.
    • Use format-dateTime to get the DAY of the month.
    • Approach#1 - (Not recommended if you have frequent/more scheduled orchestrations in your OIC)
      • Add a switch to check if DAY is Tuesday
        • If Yes
          • put a wait for 24 hours --> This can cause an issue if you have frequent/more scheduled orchestrations in OIC.
          • Use rest api to invoke the same schedule integration with action:NOW --> This will make the call on next day same time.
        • If No
          • Add your business logic here.
    • Approach#2 - Better than previous, a combination with above approach.
      • Clone the above scheduled integration, schedule it Monthly 2nd of every month at 8AM, stop the schedule.
      • Remove the switch condition in the cloned integration.
      • In the switch condition of original flow,
        • If yes - make a rest api call to the cloned integration and start the schedule.
        • In else case, stop the schedule of clone integration after your business logic.
          • If the schedule is already stopped, you may have to check the status before stopping it.

    Comment

     

    • Hemanth Lakkaraju

      If 1st falls on a Tuesday, then this job has to be put on hold and will be processed on the following Wednesday 8 AM

      Can you clarify on this if it means next day (2nd of that month)? 

      • Punit Desai

        Yes Hemanth, if 1st falls on a Tuesday, it will be processed on 2nd of that month which is the next day.

      • Hemanth Lakkaraju

        There is no direct way with an expression to achieve this as some of the constructs of iCal expression are not supported yet.

        Few ways to achieve this is:

        • Create a Monthly Schedule for 1st of every month.
        • Use format-dateTime to get the DAY of the month.
        • Approach#1 - (Not recommended if you have frequent/more scheduled orchestrations in your OIC)
          • Add a switch to check if DAY is Tuesday
            • If Yes
              • put a wait for 24 hours --> This can cause an issue if you have frequent/more scheduled orchestrations in OIC.
              • Use rest api to invoke the same schedule integration with action:NOW --> This will make the call on next day same time.
            • If No
              • Add your business logic here.
        • Approach#2 - Better than previous, a combination with above approach.
          • Clone the above scheduled integration, schedule it Monthly 2nd of every month at 8AM, stop the schedule.
          • Remove the switch condition in the cloned integration.
          • In the switch condition of original flow,
            • If yes - make a rest api call to the cloned integration and start the schedule.
            • In else case, stop the schedule of clone integration after your business logic.
              • If the schedule is already stopped, you may have to check the status before stopping it.