Quantcast
Channel: Martin Dráb's Activities
Viewing all articles
Browse latest Browse all 17532

Reading table BatchJob.recurrenceData EDT SysRecurrenceData

$
0
0

Below find to X++ objects:

(1) Class_OSISysRecurrenceReader.xpo

(2) Job_OSISysRecurrenceReaderJob

     The job is used to demonstrate how to use the class.

---- Class follows ----

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: CLS

; Microsoft Dynamics AX Class: OSISysRecurrenceReader unloaded
; --------------------------------------------------------------------------------
  CLSVERSION 1
 
  CLASS #OSISysRecurrenceReader
    PROPERTIES
      Name                #OSISysRecurrenceReader
      Origin              #{541DBFDD-8D6E-4430-90DA-F1F38B693EAF}
    ENDPROPERTIES
   
    METHODS
      SOURCE #classDeclaration
        #/// <summary>
        #/// OSISysRecurrenceReader class is used to read batch job recurrence info.
        #/// </summary>
        #/// <remarks>
        #/// Created by Kwarner
        #/// </remarks>
        #
        #class OSISysRecurrenceReader
        #{
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_Caption
        #public static str getBatchInfo_Caption(container c)
        #{
        #    return conPeek(c,2);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_GetStatus
        #public static str getBatchInfo_GetStatus(container c)
        #{
        #    return conPeek(c,1);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_LogLevel
        #public static str getBatchInfo_LogLevel(container c)
        #{
        #    return conPeek(c,3);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_NextStartDate
        #public static str getBatchInfo_NextStartDate(container c)
        #{
        #    return conPeek(c,9);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_NextStartDateTime
        #public static str getBatchInfo_NextStartDateTime(container c)
        #{
        #    return conPeek(c,8);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_NextStartTime
        #public static str getBatchInfo_NextStartTime(container c)
        #{
        #    return conPeek(c,10);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_OrigStartDate
        #public static str getBatchInfo_OrigStartDate(container c)
        #{
        #    return conPeek(c,6);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_OrigStartDateTime
        #public static str getBatchInfo_OrigStartDateTime(container c)
        #{
        #    return conPeek(c,5);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_OrigStartTime
        #public static str getBatchInfo_OrigStartTime(container c)
        #{
        #    return conPeek(c,7);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_Recurrence
        #public static str getBatchInfo_Recurrence(container c)
        #{
        #    return conPeek(c,13);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_RecurrenceEnd
        #public static str getBatchInfo_RecurrenceEnd(container c)
        #{
        #    return conPeek(c,12);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_RuntimeJob
        #public static str getBatchInfo_RuntimeJob(container c)
        #{
        #    return conPeek(c,4);
        #}
      ENDSOURCE
      SOURCE #getBatchInfo_TimeZone
        #public static str getBatchInfo_TimeZone(container c)
        #{
        #    return conPeek(c,11);
        #}
      ENDSOURCE
      SOURCE #getBatchInfoByCaption
        #public static container getBatchInfoByCaption(BatchCaption batchCaption)
        #{
        #    BatchJob batchJob;
        #
        #    select RecId from batchJob where batchJob.Caption == batchCaption;
        #    return OSIBase::getBatchInfoByRecId(batchJob.RecId);
        #}
      ENDSOURCE
      SOURCE #getBatchInfoByRecId
        #public static container getBatchInfoByRecId(RecId batchJobRecId)
        #{
        #    SysRecurrenceData recurrenceData;
        #    utcdatetime       recurrenceDataStartDateTime;
        #    date              recurrenceDataStartDate;
        #    TimeOfDay         recurrenceDataStartTime;
        #    int               recurrenceType;
        #    str               recurrenceTypeStr;
        #    str               recurrenceRepeatStr;
        #    str               recurrenceRepeatCnt;
        #    int               recurrenceRepeatCntInt;
        #    str               recurrenceRepeatDay;
        #    Timezone          recurrenceTZ;
        #    utcdatetime       startDateTime;
        #    date              startDate;
        #    TimeOfDay         startTime;
        #    recId             batchHeaderId;
        #    BatchCaption      caption;
        #    BatchLogLevel     logLevel;
        #    boolean           runtimeJob;
        #    container         results;
        #    container         conTmp;
        #    container         ConWeekDay;
        #    int i, dayOfWeekInt, weekOfMonthInt, monthInt;
        #    str monthInterval, weekOfMonth, dayOfWeek, month;
        #    str dayOfWeekStr, weekOfMonthStr, monthStr;
        #    BatchJob batchJob;
        #
        #    select batchJob where batchJob.RecId == batchJobRecId;
        #    if(batchJob)
        #    {
        #        batchHeaderId = batchJob.RecId;
        #        startDateTime = batchJob.OrigStartDateTime;
        #        startDate = batchJob.StartDate;
        #        startTime = batchJob.StartTime;
        #        recurrenceData = batchJob.RecurrenceData;
        #        caption = batchJob.Caption;
        #        logLevel = batchJob.LogLevel;
        #        runtimeJob = batchJob.RuntimeJob;
        #
        #        recurrenceDataStartDateTime         = SysRecurrence::getRecurrenceStartDateTime(recurrenceData);
        #        recurrenceDataStartDate             = SysRecurrence::getRecurrenceStartDate(recurrenceData);
        #        recurrenceDataStartTime             = SysRecurrence::getRecurrenceTime(recurrenceData);
        #        recurrenceTZ                        = SysRecurrence::getRecurrenceTimezone(recurrenceData);
        #        recurrenceType                      = conpeek(recurrenceData, 4);
        #        recurrenceTypeStr = '';
        #        switch (recurrenceType)
        #        {
        #            case 1:
        #                recurrenceTypeStr = 'No end';
        #                break;
        #            case 2:
        #                recurrenceTypeStr = strFmt('End after %1 iterations', conpeek(recurrenceData, 5));
        #                break;
        #            case 3:
        #                recurrenceTypeStr = strFmt('End after %1 date', conpeek(recurrenceData, 6));
        #                break;
        #        }
        #        recurrenceRepeatStr = conpeek(recurrenceData, 7);
        #        //0 = Minutes
        #        //1 = Hours
        #        //2 = Days
        #        //3 = Weeks
        #        //4 = Months
        #        //5 = Years
        #
        #        if (recurrenceRepeatStr == '0')
        #        {
        #            recurrenceRepeatCnt = conpeek(recurrenceData, 8);
        #            recurrenceRepeatStr = strFmt('Repeat every %1 minutes', recurrenceRepeatCnt);
        #        }
        #        if (recurrenceRepeatStr == '1')
        #        {
        #            recurrenceRepeatCnt = conpeek(recurrenceData, 8);
        #            recurrenceRepeatStr = strFmt('Repeat every %1 hours', recurrenceRepeatCnt);
        #        }
        #        if (recurrenceRepeatStr == '2')
        #        {
        #            conTmp = conpeek(recurrenceData, 8);
        #            if (conpeek(conTmp, 1) == 1)
        #            {
        #                recurrenceRepeatCnt = conpeek(conTmp, 2);
        #                recurrenceRepeatStr = strFmt('Repeat every %1 days', recurrenceRepeatCnt);
        #            }
        #            else
        #            {
        #                recurrenceRepeatStr = 'Repeat every day';
        #            }
        #        }
        #        if (recurrenceRepeatStr == '3')
        #        {
        #            conTmp = conpeek(recurrenceData, 8);
        #            recurrenceRepeatCnt = conpeek(conTmp, 1);
        #            recurrenceRepeatStr = strFmt('Repeat every %1 weeks', recurrenceRepeatCnt);
        #            recurrenceRepeatCnt = conpeek(conTmp, 2);
        #            recurrenceRepeatCntInt = str2int(recurrenceRepeatCnt);
        #            i = 0;
        #            if (recurrenceRepeatCntInt - 64 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Sunday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 64;
        #            }
        #            if (recurrenceRepeatCntInt - 32 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Saturday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 32;
        #            }
        #            if (recurrenceRepeatCntInt - 16 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Friday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 16;
        #            }
        #            if (recurrenceRepeatCntInt - 8 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Thursday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 8;
        #            }
        #            if (recurrenceRepeatCntInt - 4 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Wednesday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 4;
        #            }
        #            if (recurrenceRepeatCntInt - 2 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Tuesday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 2;
        #            }
        #            if (recurrenceRepeatCntInt - 1 >= 0)
        #            {
        #                i = i + 1;
        #                ConWeekDay = conIns(ConWeekDay, i, 'Monday');
        #                recurrenceRepeatCntInt = recurrenceRepeatCntInt - 1;
        #            }
        #
        #            if (conFind(ConWeekDay, 'Monday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Monday';
        #            if (conFind(ConWeekDay, 'Tuesday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Tuesday';
        #            if (conFind(ConWeekDay, 'Wednesday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Wednesday';
        #            if (conFind(ConWeekDay, 'Thursday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Thursday';
        #            if (conFind(ConWeekDay, 'Friday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Friday';
        #            if (conFind(ConWeekDay, 'Saturday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Saturday';
        #            if (conFind(ConWeekDay, 'Sunday') > 0)
        #                recurrenceRepeatStr = recurrenceRepeatStr + ' Sunday';
        #        }
        #
        #        if (recurrenceRepeatStr == '4')
        #        {
        #            conTmp = conpeek(recurrenceData, 8);
        #            if (conpeek(conTmp, 1) == 1)
        #            {
        #                recurrenceRepeatCnt = conpeek(conTmp, 3);
        #                recurrenceRepeatDay = conpeek(conTmp, 2);
        #                recurrenceRepeatStr = strFmt('Repeat every %1 Months on %2 day', recurrenceRepeatCnt, recurrenceRepeatDay);
        #            }
        #            else
        #            {
        #                dayOfWeek = conpeek(conTmp, 5);
        #                monthInterval = conpeek(conTmp, 6);
        #                weekOfMonth = conpeek(conTmp, 4);
        #
        #                dayOfWeekInt = str2int(dayOfWeek);
        #                if (dayOfWeekInt == 1)
        #                    dayOfWeekStr = 'Monday';
        #                if (dayOfWeekInt == 2)
        #                    dayOfWeekStr = 'Tuesday';
        #                if (dayOfWeekInt == 3)
        #                    dayOfWeekStr = 'Wednesday';
        #                if (dayOfWeekInt == 4)
        #                    dayOfWeekStr = 'Thursday';
        #                if (dayOfWeekInt == 5)
        #                    dayOfWeekStr = 'Friday';
        #                if (dayOfWeekInt == 6)
        #                    dayOfWeekStr = 'Saturday';
        #                if (dayOfWeekInt == 7)
        #                    dayOfWeekStr = 'Sunday';
        #
        #                weekOfMonthInt = str2int(weekOfMonth);
        #                if (weekOfMonthInt == 0)
        #                    weekOfMonthStr = '1st';
        #                if (weekOfMonthInt == 1)
        #                    weekOfMonthStr = '2nd';
        #                if (weekOfMonthInt == 2)
        #                    weekOfMonthStr = '3rd';
        #                if (weekOfMonthInt == 3)
        #                    weekOfMonthStr = '4th';
        #                if (weekOfMonthInt == 4)
        #                    weekOfMonthStr = 'last';
        #
        #                recurrenceRepeatStr = strFmt('Repeat every %1 months %2 week on %3', monthInterval, weekOfMonthStr, dayOfWeekStr);
        #            }
        #        }
        #        if (recurrenceRepeatStr == '5')
        #        {
        #            conTmp = conpeek(recurrenceData, 8);
        #            if (conpeek(conTmp, 1) == 1)
        #            {
        #                recurrenceRepeatStr = strFmt('Repeat once per year', recurrenceRepeatCnt, recurrenceRepeatDay);
        #            }
        #            else
        #            {
        #                dayOfWeek = conpeek(conTmp, 3);
        #                weekOfMonth = conpeek(conTmp, 2);
        #                month = conpeek(conTmp, 4);
        #
        #                dayOfWeekInt = str2int(dayOfWeek);
        #                if (dayOfWeekInt == 1)
        #                    dayOfWeekStr = 'Monday';
        #                if (dayOfWeekInt == 2)
        #                    dayOfWeekStr = 'Tuesday';
        #                if (dayOfWeekInt == 3)
        #                    dayOfWeekStr = 'Wednesday';
        #                if (dayOfWeekInt == 4)
        #                    dayOfWeekStr = 'Thursday';
        #                if (dayOfWeekInt == 5)
        #                    dayOfWeekStr = 'Friday';
        #                if (dayOfWeekInt == 6)
        #                    dayOfWeekStr = 'Saturday';
        #                if (dayOfWeekInt == 7)
        #                    dayOfWeekStr = 'Sunday';
        #
        #                weekOfMonthInt = str2int(weekOfMonth);
        #                if (weekOfMonthInt == 0)
        #                    weekOfMonthStr = '1st';
        #                if (weekOfMonthInt == 1)
        #                    weekOfMonthStr = '2nd';
        #                if (weekOfMonthInt == 2)
        #                    weekOfMonthStr = '3rd';
        #                if (weekOfMonthInt == 3)
        #                    weekOfMonthStr = '4th';
        #                if (weekOfMonthInt == 4)
        #                    weekOfMonthStr = 'last';
        #
        #                monthInt = str2int(month);
        #                if (monthInt == 1)
        #                    monthStr = 'January';
        #                if (monthInt == 2)
        #                    monthStr = 'Feburary';
        #                if (monthInt == 3)
        #                    monthStr = 'March';
        #                if (monthInt == 4)
        #                    monthStr = 'April';
        #                if (monthInt == 5)
        #                    monthStr = 'May';
        #                if (monthInt == 6)
        #                    monthStr = 'June';
        #                if (monthInt == 7)
        #                    monthStr = 'July';
        #                if (monthInt == 8)
        #                    monthStr = 'August';
        #                if (monthInt == 9)
        #                    monthStr = 'September';
        #                if (monthInt == 10)
        #                    monthStr = 'October';
        #                if (monthInt == 11)
        #                    monthStr = 'November';
        #                if (monthInt == 12)
        #                    monthStr = 'December';
        #
        #                recurrenceRepeatStr = strFmt('Repeat every year on %1 week of %2 on %3', weekOfMonthStr, monthStr, dayOfWeekStr);
        #            }
        #        }
        #
        #        results = ['Batch Job Found', caption, strFmt('%1', logLevel), strFmt('%1', runtimeJob), strFmt('%1', recurrenceDataStartDateTime), strFmt('%1', recurrenceDataStartDate), strFmt('%1', recurrenceDataStartTime), strFmt('%1', startDateTime), strFmt('%1', startDate), strFmt('%1', startTime), strFmt('%1', recurrenceTZ), strFmt('%1', recurrenceTypeStr), strFmt('%1', recurrenceRepeatStr)];
        #    }
        #    else
        #    {
        #        results = ['Batch Job Not Found', '', '', '', '', '', '', '', '', '', '', '', ''];
        #    }
        #
        #    return results;
        #}
      ENDSOURCE
    ENDMETHODS
  ENDCLASS

***Element: END

---- Job follows ----

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: JOB

; Microsoft Dynamics AX Job: OSISysRecurrenceReaderJob unloaded
; --------------------------------------------------------------------------------
  JOBVERSION 1
 
  SOURCE #OSISysRecurrenceReaderJob
    #static void OSISysRecurrenceReaderJob(Args _args)
    #{
    #    container result;
    #
    #    info('Calling OSIBase with batch job RecId:');
    #    result = OSISysRecurrenceReader::getBatchInfoByRecId(5637218082);
    #    if (OSISysRecurrenceReader::getBatchInfo_GetStatus(result) == 'Batch Job Found')
    #    {
    #        info(strFmt('  Log level                          : %1', OSISysRecurrenceReader::getBatchInfo_LogLevel(result)));
    #        info(strFmt('  Caption                            : %1', OSISysRecurrenceReader::getBatchInfo_Caption(result)));
    #        info(strFmt('  Runtime job                        : %1', OSISysRecurrenceReader::getBatchInfo_RuntimeJob(result)));
    #        info(strFmt('  Original start date time           : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartDateTime(result)));
    #        info(strFmt('  Original start date                : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartDate(result)));
    #        info(strFmt('  Original start time                : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartTime(result)));
    #        info(strFmt('  Next start date time               : %1', OSISysRecurrenceReader::getBatchInfo_NextStartDateTime(result)));
    #        info(strFmt('  Next start date                    : %1', OSISysRecurrenceReader::getBatchInfo_NextStartDate(result)));
    #        info(strFmt('  Next start time                    : %1', OSISysRecurrenceReader::getBatchInfo_NextStartTime(result)));
    #        info(strFmt('  Time zone                          : %1', OSISysRecurrenceReader::getBatchInfo_TimeZone(result)));
    #        info(strFmt('  Recurrence type                    : %1', OSISysRecurrenceReader::getBatchInfo_RecurrenceEnd(result)));
    #        info(strFmt('  Recurrence                         : %1', OSISysRecurrenceReader::getBatchInfo_Recurrence(result)));
    #    }
    #    else
    #    {
    #        info(OSISysRecurrenceReader::getBatchInfo_GetStatus(result));
    #    }
    #
    #    info('');
    #    info('Calling OSIBase with batch job Caption:');
    #    result = OSISysRecurrenceReader::getBatchInfoByCaption('KW Test');
    #    if (OSISysRecurrenceReader::getBatchInfo_GetStatus(result) == 'Batch Job Found')
    #    {
    #        info(strFmt('  Log level                          : %1', OSISysRecurrenceReader::getBatchInfo_LogLevel(result)));
    #        info(strFmt('  Caption                            : %1', OSISysRecurrenceReader::getBatchInfo_Caption(result)));
    #        info(strFmt('  Runtime job                        : %1', OSISysRecurrenceReader::getBatchInfo_RuntimeJob(result)));
    #        info(strFmt('  Original start date time           : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartDateTime(result)));
    #        info(strFmt('  Original start date                : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartDate(result)));
    #        info(strFmt('  Original start time                : %1', OSISysRecurrenceReader::getBatchInfo_OrigStartTime(result)));
    #        info(strFmt('  Next start date time               : %1', OSISysRecurrenceReader::getBatchInfo_NextStartDateTime(result)));
    #        info(strFmt('  Next start date                    : %1', OSISysRecurrenceReader::getBatchInfo_NextStartDate(result)));
    #        info(strFmt('  Next start time                    : %1', OSISysRecurrenceReader::getBatchInfo_NextStartTime(result)));
    #        info(strFmt('  Time zone                          : %1', OSISysRecurrenceReader::getBatchInfo_TimeZone(result)));
    #        info(strFmt('  Recurrence type                    : %1', OSISysRecurrenceReader::getBatchInfo_RecurrenceEnd(result)));
    #        info(strFmt('  Recurrence                         : %1', OSISysRecurrenceReader::getBatchInfo_Recurrence(result)));
    #    }
    #    else
    #    {
    #        info(OSISysRecurrenceReader::getBatchInfo_GetStatus(result));
    #    }
    #
    #}
  ENDSOURCE
  PROPERTIES
    Origin              #{DE838A0F-C720-4DD5-9CCC-2C3809910FF9}
  ENDPROPERTIES
 

***Element: END

---- End Code ----


Viewing all articles
Browse latest Browse all 17532

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>