Graphical Scheduler exposes most of its integration events in the codeunit 70097925 IWX Scheduler AL Hooks.
Below are the most common integration events.
OnBeforeProdDispatchSearch()
This gets called before the search filters have been applied when searching production order lines.
Use this to extend searching on production order routing lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnBeforeProdDispatchSearch(var ptxtSearch: Text, var precProdOrderRoutingLine: Record “Prod. Order Routing Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precProdOrderRoutingLine | Record “Prod. Order Routing Line” | The production order line record to change filters on. |
OnAfterProdDispatchSearch()
This gets called after the search filters have been applied.
Use this to extend searching on production order routing lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnAfterProdDispatchSearch(var ptxtSearch: Text, var precProdOrderRoutingLine: Record “Prod. Order Routing Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precProdOrderRoutingLine | Record “Prod. Order Routing Line” | The production order line record to change filters on. |
OnBeforeJobPlanningLineSearch()
This gets called before the search filters have been applied.
Use this to extend searching on production order routing lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnBeforeJobPlanningLineSearch(var ptxtSearch: Text, var precJobPlanningLine: Record “Job Planning Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precJobPlanningLine | Record “Job Planning Line” | The job planning line to add filters to. |
OnAfterJobPlanningLineSearch()
This gets called after the search filters have been applied.
Use this to extend searching on job planning lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnAfterJobPlanningLineSearch(var ptxtSearch: Text, var precJobPlanningLine: Record “Job Planning Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precJobPlanningLine | Record “Job Planning Line” | The job planning line to add filters to. |
OnBeforePlanningLineSearch()
This gets called before the search filters have been applied.
Use this to extend searching on planning lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnBeforePlanningLineSearch(var ptxtSearch: Text, var precPlanningRoutingLine: Record “Planning Routing Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precPlanningRoutingLine | Record “Planning Routing Line” | The planning routing line to add filters to. |
OnAfterPlanningLineSearch()
This gets called after the search filters have been applied.
Use this to extend searching on planning lines. For example, if you have an extension with a custom field that you’d like to search or you would like the search to include additional fields not yet searched, use this event to also search those additional fields.
Syntax
OnAfterPlanningLineSearch(var ptxtSearch: Text, var precPlanningRoutingLine: Record “Planning Routing Line”)
Parameters
Parameter | Type | Description |
ptxtSearch | Text | The search text the user supplied. |
precPlanningRoutingLine | Record “Planning Routing Line” | The planning routing line to add filters to. |
OnBeforeScheduleChangeBeforeParse()
Consider using OnBeforeScheduleChangeBeforeDataCodeunit first.
This gets called when a schedule change has been triggered, but before the JSON from the javascript has been updated.
This hook can be used to alter the before and after JSON objects prior to them being converted into cells.
Syntax
OnBeforeScheduleChangeBeforeParse(psSourceName: Text, pcodConfig: code[60], pcodEmployeeNo: code[60], ptxtSearch: Text, pjOriginalEvent: JSONObject, pjUpdateRequestObject: JSONObject, var pbHandledAndShouldCancel: Boolean)
Parameters
Parameter | Type | Description |
psSourceName | Text | The data source. |
pcodConfig | code[60] | Only used with Shop Floor Insight; otherwise, ignored. |
pcodEmployeeNo | code[60] | Only used with Shop Floor Insight; otherwise, ignored. |
ptxtSearch | Text | The search text the user supplied. |
pjOriginalEvent | JSONObject | A JSONObject with the original event. |
pjUpdateRequestObject | JSONObject | A JSONObject with only the updated fields. |
pbHandledAndShouldCancel | Boolean | Set to true to replace default behavior. |
OnBeforeScheduleChangeBeforeDataCodeunit()
This occurs when a schedule change has been requested, after the JSON has been parsed into time cells and before the data codeunit has been called. This gives an opportunity to override other datasource providers and is another method to implement handling a write change.
Syntax
OnBeforeScheduleChangeBeforeDataCodeunit(precDataSource: Record “IWX Scheduler DataSource”, pcodConfig: code[60], pcodEmployeeNo: code[60], ptxtSearch: Text, pjOriginalEvent: JSONObject, pjUpdateRequestObject: JSONObject, ptrecBeforeCopy: record “IWX Scheduler Time Cell Buffer” temporary, ptrecAfterCopy: record “IWX Scheduler Time Cell Buffer” temporary, var pbHandledAndShouldCancel: Boolean)
Parameters
Parameter | Type | Description |
precDataSource | Record “IWX Scheduler DataSource” | The datasource involved. |
pcodConfig | code[60] | Only used for Shop Floor Insight; otherwise, ignored. |
pcodEmployeeNo | code[60] | Only used for Shop Floor Insight; otherwise, ignored. |
ptxtSearch | Text | The search text the user supplied. |
pjOriginalEvent | JSONObject | A JSONObject with the original event. |
pjUpdateRequestObject | JSONObject | A JSONObject with only the updated fields. |
ptrecBeforeCopy | record “IWX Scheduler Time Cell Buffer” temporary | A record representing the cell data before the change. |
ptrecAfterCopy | record “IWX Scheduler Time Cell Buffer” temporary | A record representing the cell data after the change. |
pbHandledAndShouldCancel | Boolean | Set to true to replace product behavior. |
OnCollectEasyConfigOptions()
Subscribe to this event if you want your datasource to show up in a user-friendly list. You are expected to add a new record to the temporary record. Do not replace the existing records.
Syntax
OnCollectEasyConfigOptions(var ptrecEasyConfigOption: Record “IWX Scheduler DataSource” temporary)
Parameters
Parameter | Type | Description |
ptrecEasyConfigOption | Record “IWX Scheduler DataSource” | The temporary record to add additional records to. |
OnCollectSuggestionsFor()
Subscribe to this event if you want to suggest specific configurations for the supplied record type. This can be used for graphically scheduling from anywhere. You are expected to add a new record to the temporary record. Do not replace the existing records.
Syntax
OnCollectSuggestionsFor(var precRefIn: RecordRef, pfrefDocNo: FieldRef, var ptrecEasyConfigOption: Record “IWX Scheduler DataSource” temporary)
Parameters
Parameter | Type | Description |
precRefIn | RecordRef | The record to make suggestions for. |
pfrefDocNo | FieldRef | The input field document reference. |
ptrecEasyConfigOption | Record “IWX Scheduler DataSource” | Populate the temporary record with the supplied suggestion. |
OnGetSuggestedBasicFieldsFor()
Use to suggest the basic fields for the supplied table number.
Use piTableToSuggest for the table number. precOptionalContext is not necessarily the matching table; precOptionalContext can often be the header table, such as the production order, when piTableToSuggest is the prod order routing line.
This allows you to suggest different fields based on the context of the header. For example, with the sales line table you may suggest different date fields if the header is a quote versus an order or if the order is late or special.
Note: If there are multiple subscribers that provide suggestions for the same table, the system will only use one of the results from one of the subscribers.
Syntax
OnGetSuggestedBasicFieldsFor(piTableToSuggest: Integer, precOptionalContext: RecordRef, var piOutDocFieldNo: Integer, var piOutDocLineFieldNo: Integer, var piOutStartingFieldNo: Integer, var piOutEndingFieldNo: Integer, var piOutCapacityTypeFieldNo: Integer, var piOutCapacityFieldNo: Integer, var piOutSuggestedTreeCodeunit: Integer, var piOutAutoStartFilterFieldNo: Integer)
Parameters
Parameter | Type | Description |
piTableToSuggest | Integer | The input table to provide suggestions for. |
precOptionalContext | RecordRef | May not be supplied; when supplied, is not necessarily the same as piTableToSuggest. |
piOutDocFieldNo | Integer | N/A |
piOutDocLineFieldNo | Integer | N/A |
piOutStartingFieldNo | Integer | N/A |
piOutEndingFieldNo | Integer | N/A |
piOutCapacityTypeFieldNo | Integer | N/A |
piOutCapacityFieldNo | Integer | N/A |
piOutSuggestedTreeCodeunit | Integer | N/A |
piOutAutoStartFilterFieldNo | Integer | N/A |
OnGetTreeProvider()
Subscribe to this event if you are making your own tree provider.
If piCodeunitIn is your provider, you are expected to set ptrProvider to a codeunit instance.
Syntax
OnGetTreeProvider(piCodeunitIn: Integer, var ptrProvider: Interface “IWX Scheduler Tree Provider”)
Parameters
Parameter | Type | Description |
piCodeunitIn | Integer | The codeunit ID. Use this to determine if it is yours. |
ptrProvider | Interface “IWX Scheduler Tree Provider” | An instance of a codeunit that implements this interface. Only populate this when piCodeunitIn is yours. |
OnGetAvailableTreeProviders()
Subscribe to this event to add to the dictionary. Integer equals the codeunit of the provider; Text equals friendly human name of the provider.
Syntax
OnGetAvailableTreeProviders(piOptionalCompatibleWith: Integer, var pdictAddToThis: Dictionary of [Integer, Text])
Parameters
Parameter | Type | Description |
piOptionalCompatibleWith | Integer | When 0, add yourself; otherwise, this represents the table #. Add yourself if you are compatible with this. |
pdictAddToThis | Dictionary of [Integer, Text] | When subscribing to this event, you are expected to add to this dictionary. |
OnBeforeNavigateWithRecordRef()
Obsolete. Do not use. Use OnBeforeNavigateWithRecordRefAndCell instead. Use OnBeforeNavigateWithRecordRefAndCell instead, GS1.6.
Syntax
OnBeforeNavigateWithRecordRef(precRef: RecordRef, pdtStartDateTime: DateTime, pdtEndDateTime: DateTime, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
precRef | RecordRef | Obsolete |
pdtStartDateTime | DateTime | Obsolete |
pdtEndDateTime | DateTime | Obsolete |
pbHandled | Boolean | Set to true to replace existing behavior. |
OnBeforeNavigateWithRecordRefAndCell()
Occurs before navigation (the Details button).
If you want to replace the navigation behavior, use this event to override the base behavior. OnBeforeNavigateDefaultPage can also be implemented as an alternative if you only want to be informed when a custom table has been navigated.
Syntax
OnBeforeNavigateWithRecordRefAndCell(precRef: RecordRef, var ptrecLastTimeCell: Record “IWX Scheduler Time Cell Buffer” temporary, pdtStartDateTime: DateTime, pdtEndDateTime: DateTime, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
precRef | RecordRef | The record that will be navigated. |
ptrecLastTimeCell | Record “IWX Scheduler Time Cell Buffer” | The last time cell, and the time cell that supplied the precRef reference. |
pdtStartDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
pdtEndDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
pbHandled | Boolean | Set to true to replace existing behavior. |
OnAfterNavigateWithRecordRef()
Occurs after navigation. If you want to run your logic after navigation has occurred, use this event.
Syntax
OnAfterNavigateWithRecordRef(precRef: RecordRef, pdtStartDateTime: DateTime, pdtEndDateTime: DateTime)
Parameters
Parameter | Type | Description |
precRef | RecordRef | The record that will be navigated.
You may need to re-fetch the record depending on the page that started. |
pdtStartDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
pdtEndDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
OnBeforeNavigateProductionOrder()
Specific to production orders. When navigating to a production order, this gives a chance to change the base behavior.
Syntax
OnBeforeNavigateProductionOrder(precRef: RecordRef, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
precRef | RecordRef | The record that will be navigated.
You may need to re-fetch the record depending on the page that started. |
pbHandled | Boolean | Set to true to replace existing behavior. |
OnAfterNavigateProductionOrder()
Specific to production orders. After navigating to a production order, this gives a chance to run additional logic after the order has been displayed.
Syntax
OnAfterNavigateProductionOrder(precRef: RecordRef)
Parameters
Parameter | Type | Description |
precRef | RecordRef | The record that will be navigated.
You may need to re-fetch the record depending on the page that started. |
OnBeforeGuessProdOrderRtngLineByConvention()
If you have a custom data provider that references production order related data and want to leverage other built-in functionality (e.g., navigating to the work center), use this event to use the recordref for your custom table and supply a suggested production order line and production order routing line. Without implementing this event, it will guess based on common naming conventions.
If you are showing data that is not related to production orders, do not implement this event.
Syntax
OnBeforeGuessProdOrderRtngLineByConvention(var prrefLastSelectedSourceRow: RecordRef, var precOutProdOrderLine: record “Prod. Order Line”, var precOutProdOrderRtngLine: record “Prod. Order Routing Line”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
prrefLastSelectedSourceRow | RecordRef | The source record to find the prod order line and prod order routing line from. |
precOutProdOrderLine | record “Prod. Order Line” | Your preferred production order line. |
precOutProdOrderRtngLine | record “Prod. Order Routing Line” | Your preferred production order routing line. |
pbHandled | Boolean | Set to true to replace existing behavior. |
OnAfterGuessProdOrderRtngLineByConvention()
Similar to OnBeforeGuessProdOrderRtngLineByConvention, but occurs after the system has guessed from convention and after other extensions have supplied their suggestions.
Syntax
OnAfterGuessProdOrderRtngLineByConvention(var prrefLastSelectedSourceRow: RecordRef, var precOutProdOrderLine: record “Prod. Order Line”, var precOutProdOrderRtngLine: record “Prod. Order Routing Line”)
Parameters
Parameter | Type | Description |
prrefLastSelectedSourceRow | RecordRef | The source record to find the prod order line and prod order routing line from. |
precOutProdOrderLine | record “Prod. Order Line” | Your preferred production order line. |
precOutProdOrderRtngLine | record “Prod. Order Routing Line” | Your preferred production order routing line. |
OnBeforeNavigateDefaultPage()
Similar to OnBeforeNavigateWithRecordRefAndCell, but only gets called when the data is not something the app natively recognizes.
If your default page navigation on your custom table already navigates to your preferred page, you do not need to implement this; implement this event only if you want to change which page is used instead.
Syntax
OnBeforeNavigateDefaultPage(precRef: RecordRef, pdtStartDateTime: DateTime, pdtEndDateTime: DateTime, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
precRef | RecordRef | The record to navigate to. |
pdtStartDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
pdtEndDateTime | DateTime | Optional use for page loads that need date ranges, such as work center load. |
pbHandled | Boolean | Set to true to replace existing behavior. |
OnGetSupportsDocumentZoom()
Implement this if your data provider supports document zooming. Document zooming allows the data provider to zoom to the beginning and end of a document and to filter to a specific document.
By not implementing this, the answer is no.
Syntax
OnGetSupportsDocumentZoom(piCodeunitIn: Integer, var pbOutSupportsZoom: Boolean, var ptxtOutDocumentFieldName: Text, var ptxtOutStartFieldName: Text, var ptxtOutEndFieldName: Text)
Parameters
Parameter | Type | Description |
piCodeunitIn | Integer | The data codeunit being inquired about. |
pbOutSupportsZoom | Boolean | Yes/no whether it supports document zoom. |
ptxtOutDocumentFieldName | Text | The name of the field that represents the document. |
ptxtOutStartFieldName | Text | The name of the field that represents the start date field. |
ptxtOutEndFieldName | Text | The name of the field that represents the end date field. |
OnZoomToDocumentCalculate()
Implement this to provide zoom data for a document. If you implement this, you are expected to supply the start, end, and document no.
Syntax
OnZoomToDocumentCalculate(ptrecLastTimeCell: record “IWX Scheduler Time Cell Buffer” temporary, piDatasourceOfSelectedCell: Integer, ptxtDatasourceZoomField: Text, var pdtOutStart: DateTime, var pdtOutEnd: DateTime, var ptxtOutDocumentNo: Text)
Parameters
Parameter | Type | Description |
ptrecLastTimeCell | record “IWX Scheduler Time Cell Buffer” temporary | The cell containing the data to start zooming on. |
piDatasourceOfSelectedCell | Integer | The data codeunit that supplied the cell. |
ptxtDatasourceZoomField | Text | Input zoom field name. |
pdtOutStart | DateTime | The suggested output start time. |
pdtOutEnd | DateTime | The suggested output end time. |
ptxtOutDocumentNo | Text | The suggested output document no. |
OnBeforeHandlePageEmptyClick()
Implement this if you want to change the behavior or add additional behavior when the user clicks in an empty area of the scheduler.
Syntax
OnBeforeHandlePageEmptyClick(precView: record “IWX Scheduler View”, pdtClickedDateTime: DateTime, var lbHandled: Boolean)
Parameters
Parameter | Type | Description |
precView | record “IWX Scheduler View” | A reference to the view the empty click occurred on. |
pdtClickedDateTime | DateTime | The approximate date and time where the click occurred. This can be 0DT if the scheduler isn’t sure. |
lbHandled | Boolean | Set to true to replace existing behavior. |
OnBeforeHandlePagePartEmptyClick()
Similar to OnBeforeHandlePageEmptyClick, but for the page part instead.
Syntax
OnBeforeHandlePagePartEmptyClick(precView: record “IWX Scheduler View”, pdtClickedDateTime: DateTime, var lbHandled: Boolean)
Parameters
Parameter | Type | Description |
precView | record “IWX Scheduler View” | A reference to the view the empty click occurred on. |
pdtClickedDateTime | DateTime | The approximate date and time where the click occurred. This can be 0DT if the scheduler isn’t sure. |
lbHandled | Boolean | Set to true to replace existing behavior. |
OnAdjustPageCaption()
This gives an opportunity to change the page caption.
Syntax
OnAdjustPageCaption(var ptxtSuggestedCaption: Text, recView: record “IWX Scheduler View”, trecSelectedCellBuffer: record “IWX Scheduler Time Cell Buffer”, eScale: enum “IWX Scheduler Time Scale Enum”, dtHumanStart: DateTime, dtHumanEnd: DateTime, dtCalculatedStart: DateTime, dtCalculatedEnd: DateTime)
Parameters
Parameter | Type | Description |
ptxtSuggestedCaption | Text | The current suggested caption. |
recView | record “IWX Scheduler View” | The current view. |
trecSelectedCellBuffer | record “IWX Scheduler Time Cell Buffer” | The selected cell. |
eScale | enum “IWX Scheduler Time Scale Enum” | The current scale. |
dtHumanStart | DateTime | What the user requested for start. |
dtHumanEnd | DateTime | What the user requested for an end date. |
dtCalculatedStart Type: |
DateTime | What the system calculates as the display start. |
dtCalculatedEnd | DateTime | What the system calculates as the display end. |
OnAdjustPagePartCaption()
This gives an opportunity to change the page part caption. Similar to OnAdjustPageCaption, but when used as a page part.
Syntax
OnAdjustPagePartCaption(var ptxtSuggestedCaption: Text, recView: record “IWX Scheduler View”, trecSelectedCellBuffer: record “IWX Scheduler Time Cell Buffer”, eScale: enum “IWX Scheduler Time Scale Enum”, dtHumanStart: DateTime, dtHumanEnd: DateTime, dtCalculatedStart: DateTime, dtCalculatedEnd: DateTime)
Parameters
Parameter | Type | Description |
ptxtSuggestedCaption | Text | The current suggested caption. |
recView | record “IWX Scheduler View” | The current view. |
trecSelectedCellBuffer | record “IWX Scheduler Time Cell Buffer” | The selected cell. |
eScale | enum “IWX Scheduler Time Scale Enum” | The current scale. |
dtHumanStart | DateTime | What the user requested for start. |
dtHumanEnd | DateTime | What the user requested for an end date. |
dtCalculatedStart | DateTime | What the system calculates as the display start. |
dtCalculatedEnd | DateTime | What the system calculates as the display end. |
OnBeforeGetSuggestedDescriptionAndProbableDocumentNo()
Provides an ability to override the default suggested description and default guessed document number. This is used with the anything provider and document navigation.
If you have implemented OnGetSuggestedBasicFieldsFor, you don’t also need to implement this event.
Syntax
OnBeforeGetSuggestedDescriptionAndProbableDocumentNo(ptxtOptionalPrefix: Text, var precRefIn: RecordRef, var pfrefDocNo: FieldRef, var ptxtOutDescription: Text, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtOptionalPrefix | Text | Optional prefix to add to the suggested description. |
precRefIn | RecordRef | Input record reference to the parent record to reference from. This will be the record starting it which may not be the record in the datasource provider. |
pfrefDocNo | FieldRef | Output field reference to the Document No. field you require. |
ptxtOutDescription | Text | Output description. |
pbHandled | Boolean | Set to true if you want to avoid the built-in utility. |
OnAfterGetSuggestedDescriptionAndProbableDocumentNo()
Similar to OnBeforeGetSuggestedDescriptionAndProbableDocumentNo, except this occurs after the system has guessed the document and description.
Syntax
OnAfterGetSuggestedDescriptionAndProbableDocumentNo(ptxtOptionalPrefix: Text, var precRefIn: RecordRef, var pfrefDocNo: FieldRef, var ptxtOutDescription: Text)
Parameters
Parameter | Type | Description |
ptxtOptionalPrefix | Text | Optional prefix to add to the suggested description. |
precRefIn | RecordRef | Input record reference to the parent record to reference from. This will be the record starting it which may not be the record in the datasource provider. |
pfrefDocNo | FieldRef | Output field reference to the Document No. field that you would like to use. |
ptxtOutDescription | Text | Output description. |
OnBeforeDetermineDataFields()
Used to determine the list of data fields.Occurs before the system calculates default data fields. Data fields are fields used as part of the underlying data and data used for the cell templates and tooltip templates. If you are extending behavior of cell templates and tooltip templates, you may also need to extend this.
Syntax
OnBeforeDetermineDataFields(var plstDataFields: List of [Text], var precDatasource: record “IWX Scheduler DataSource”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
plstDataFields | List of [Text] | Before sanitization. Add to this list if you have data fields you need above and beyond what the system will calculate. |
precDatasource | record “IWX Scheduler DataSource” | The datasource parameter this is relevant to. |
pbHandled | Boolean | Set to true to override system behavior. |
OnAfterDetermineDataFields()
Used to determine the list of data fields. Occurs after the system calculates default data fields. Similar to OnBeforeDetermineDataFields, but occurs after the system has determined the list of fields.
If you always know you’re adding data fields, this is preferred over OnBeforeDetermineDataFields.
Syntax
OnAfterDetermineDataFields(var plstDataFields: List of [Text], var plstInvalidFields: List of [Text], var precDatasource: record “IWX Scheduler DataSource”)
Parameters
Parameter | Type | Description |
plstDataFields | List of [Text] | Input is a list of sanitized and validated fields. Add to this list if you have data fields you need above and beyond what the system will calculate. |
plstInvalidFields | List of [Text] | List of invalid fields. |
precDatasource | record “IWX Scheduler DataSource” | The datasource parameter this is relevant to. |
OnBeforeScheduleChangeBeforeDataCodeunitWithVars()
Similar to OnBeforeScheduleChangeBeforeDataCodeunit, except all parameters are available as vars. This allows you to alter values before passed on to other providers.
Syntax
OnBeforeScheduleChangeBeforeDataCodeunitWithVars(var precDataSource: Record “IWX Scheduler DataSource”, var pcodConfig: code[60], var pcodEmployeeNo: code[60], var ptxtSearch: Text, var pjOriginalEvent: JsonObject, var pjUpdateRequestObject: JsonObject, var ptrecBeforeCopy: record “IWX Scheduler Time Cell Buffer” temporary, var ptrecAfterCopy: record “IWX Scheduler Time Cell Buffer” temporary, var pbHandledAndShouldCancel: Boolean)
Parameters
Parameter | Type | Description |
precDataSource | Record “IWX Scheduler DataSource” | The datasource involved. |
pcodConfig | code[60] | Only used for Shop Floor Insight; otherwise, ignored. |
pcodEmployeeNo | code[60] | Only used for Shop Floor Insight; otherwise, ignored. |
ptxtSearch | Text | The search text the user supplied. |
pjOriginalEvent | JsonObject | A JsonObject with the original event. |
pjUpdateRequestObject | JsonObject | A JsonObject with only the updated fields. |
ptrecBeforeCopy | record “IWX Scheduler Time Cell Buffer” temporary | A record representing the cell data before the change. |
ptrecAfterCopy | record “IWX Scheduler Time Cell Buffer” temporary | A record representing the cell data after the change. |
pbHandledAndShouldCancel | Boolean | Set to true to replace product behavior. |
OnBeforeAddAddTreeChildNodes()
Use this event as the last opportunity to alter Json before the nodes are added to the array. You can use this event to set the allow ad-hoc flag.
Syntax
OnBeforeAddAddTreeChildNodes(precView: record “IWX Scheduler View”, var piTreeProvider: Integer, var rDataOut: JsonObject, var parTopLevelGrouping: JsonArray, var pbAllowAdhoc: Boolean)
Parameters
Parameter | Type | Description |
precView | record “IWX Scheduler View” | Input of which view is being used. |
piTreeProvider | Integer | The codeunit number for the tree provider. |
rDataOut | JsonObject | The JSON object for the tree node. |
parTopLevelGrouping | JsonArray | The top-level grouping array. |
pbAllowAdhoc | Boolean | Whether or not to allow ad-hoc (MISC) rows. |
OnAutoEnsureViewsNoViewFound()
This occurs when you request a view by name, but no view is found. This gives you the opportunity to assign custom code.
Syntax
OnAutoEnsureViewsNoViewFound(ptxtView: Text, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnBeforeCreateAutoEnsureViews()
This occurs after it is determined a new view needs to exist, but before the view record is created. This allows you to customize adjustments to the view parameters.
Syntax
OnBeforeCreateAutoEnsureViews(ptxtView: Text, var precView: record “IWX Scheduler View”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
precView | record “IWX Scheduler View” | A reference to the view record. |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnAfterCreateAutoEnsureViews()
This occurs after it is determined a new view needs to exist, and after the view record has been created. Use this when you need the view record to exist prior to
Syntax
OnAfterCreateAutoEnsureViews(ptxtView: Text, var precView: record “IWX Scheduler View”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
precView | record “IWX Scheduler View” | A reference to the view record. |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnAutoEnsureDatasourcesNoDatasourceFound()
This occurs when you request a view by name, but no datasources are found. This allows you to assign a custom code to automatic views.
Syntax
OnAutoEnsureDatasourcesNoDatasourceFound(ptxtView: Text, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnBeforeCreateAutoEnsureDatasources()
When views are automatically created and no datasources exist, you can intercept and automatically create your datasources.
Syntax
OnBeforeCreateAutoEnsureDatasources(ptxtView: Text, var precDatasource: record “IWX Scheduler DataSource”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
precDatasource | record “IWX Scheduler DataSource” | |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnAfterCreateAutoEnsureDatasources()
When views are automatically created, no datasources exist, a datasource was automatically created, and then this event occurs.
Syntax
OnAfterCreateAutoEnsureDatasources(ptxtView: Text, var precDatasource: record “IWX Scheduler DataSource”, var pbHandled: Boolean)
Parameters
Parameter | Type | Description |
ptxtView | Text | The name of the view. |
precDatasource | record “IWX Scheduler DataSource” | |
pbHandled | Boolean | Set to true to bypass built-in logic. |
OnGetShouldRunAnythingConfigUI()
When creating customizations that leverage the anything provider, this allows you to avoid having the anything config automatically pop up when the datasource is created.
Syntax
OnGetShouldRunAnythingConfigUI(var precDatasource: Record “IWX Scheduler DataSource”, var pbForceUI: Boolean, var pbShouldShowUI: Boolean)
Parameters
Parameter | Type | Description |
precDatasource | Record “IWX Scheduler DataSource” | A reference to the datasource involved. |
pbForceUI | Boolean | Set to true to force the UI to show. |
pbShouldShowUI | Boolean | Recommend that the UI should show. |
OnAdjustStartEndTimesAnythingProvider()
This event allows you to adjust the start and end times when using the anything provider for reads. Be cautious when using this event; the code in the handlers must be lightweight or it could dramatically slow down rendering of the scheduler.
Syntax
OnAdjustStartEndTimesAnythingProvider(var precDatasource: record “IWX Scheduler DataSource”, var precAnythingConfig: record “IWX Scheduler Anything Config”, var precRef: RecordRef, var pdtStartDateTime: DateTime, var pdtEndDateTime: DateTime)
Parameters
Parameter | Type | Description |
precDatasource | record “IWX Scheduler DataSource” | the datasource configuration. |
precAnythingConfig | record “IWX Scheduler Anything Config” | The anything configuration. |
precRef | RecordRef | Input: the record being used to generate a cell. |
pdtStartDateTime | DateTime | In/out the startdatetime. |
pdtEndDateTime | DateTime | In/out the enddatetime. |