Product
Business Central V28
Area
Page Scripting Tool
Description
When replaying a page script that applies a column filter on Page 232 - Apply Customer Entries, the playback engine reports that the Apply Filter dialog was successfully closed, but the dialog remains open in the UI.
As a result, the next step in the script fails because a modal dialog is still active.
Steps to Reproduce
- Open a Cash Receipt Journal.
- Enter values so that Applies-to Doc. No. lookup can be opened.
- Invoke the lookup on Applies-to Doc. No.
- Page 232 - Apply Customer Entries opens.
- Use FilterByColumn on field Document No.
- Enter a valid date value (e.g.
RG10000). - Confirm the filter by pressing OK (or ENTER).
- Replay the recorded script.
Expected Result
The Apply Filter dialog closes and focus returns to Apply Customer Entries. Subsequent script steps continue normally.
Actual Result
The playback log indicates that the dialog was closed successfully (page-closed event is recorded), but the dialog remains open on screen.
The next script step fails because the modal filter dialog is still active.
Additional Observations
- The issue occurs both when pressing OK with the mouse and when pressing ENTER.
- Both recording methods generate the same YAML.
- No error is raised when the dialog is supposedly closed.
- The failure occurs only on the next step that interacts with the underlying page.
- Removing the filtering steps allows the entire script to run successfully.
- Adding wait steps after the dialog close does not resolve the issue.
Notes
This appears to be a playback issue where the Page Scripting engine reports the modal filter dialog as closed, while the dialog remains active in the UI and blocks subsequent automation steps.
Yaml:
steps:
- type: navigate
target:
- page: Cash Receipt Journal
description: Navigate to Zlg.-Eing. Buch.-Blätter
- type: page-shown
source:
page: Cash Receipt Journal
modal: false
runtimeId: bxpl
description: Page
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Posting Date
value: "10"
description: Input 10 into
- type: focus
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Document Type
description: Focus
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Document No.
value: "001"
description: Input 001 into
- type: focus
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Account Type
description: Focus
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Account Type
value: 1
description: Input 1 into
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Account No.
value: ""
isFilterAsYouType: true
description: Input into
- type: page-shown
source:
page: lookup:Account No.
modal: false
runtimeId: by3c
description: Page
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Account No.
isFilterAsYouType: true
description: Input Parameters.'Cash Receipt Journal.Account No.'
into
value: =Parameters.'Cash Receipt Journal.Account No.'
- type: invoke
target:
- page: lookup:Account No.
runtimeRef: by3c
- repeater: repeater
parameters:
AlwaysCommit: true
description: Invoke row on
- type: page-closed
source:
page: lookup:Account No.
runtimeId: by3c
description: Page
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Description
value: Mickey Mouse
description: Input Mickey Mouse into
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Bal. Account Type
value: 3
description: Input 3 into
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Bal. Account No.
value: ""
isFilterAsYouType: true
description: Input into
- type: page-shown
source:
page: lookup:Bal. Account No.
modal: false
runtimeId: by4n
description: Page
- type: invoke
target:
- page: lookup:Bal. Account No.
runtimeRef: by4n
- repeater: repeater
parameters:
AlwaysCommit: true
description: Invoke row on
- type: page-closed
source:
page: lookup:Bal. Account No.
runtimeId: by4n
description: Page
- type: input
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Applies-to Doc. Type
value: 2
description: Input 2 into
- type: invoke
target:
- page: Cash Receipt Journal
runtimeRef: bxpl
- repeater: Control1
- field: Applies-to Doc. No.
invokeType: Lookup
description: Invoke Lookup on
- type: page-shown
source:
page: Apply Customer Entries
modal: true
runtimeId: by54
description: Page
- type: invoke
target:
- page: Apply Customer Entries
runtimeRef: by54
- repeater: Control1
- field: Document No.
invokeType: FilterByColumn
parameters:
UseAdvancedFiltering: true
description: Invoke FilterByColumn on
- type: page-shown
source:
page: null
automationId: f51cf5e3-31d1-4644-8a26-043efefc68d7
caption: Filter anwenden
modal: true
runtimeId: byc3
description: Page
- type: input
target:
- page: null
automationId: f51cf5e3-31d1-4644-8a26-043efefc68d7
caption: Filter anwenden
runtimeRef: byc3
- field: Document No.
description: Input Parameters.'Document No.' into
value: =Parameters.'Document No.'
- type: invoke
target:
- page: null
automationId: f51cf5e3-31d1-4644-8a26-043efefc68d7
caption: Filter anwenden
runtimeRef: byc3
- action: null
description: Invoke
- type: page-closed
source:
page: null
runtimeId: byc3
description: Page
- type: invoke
target:
- page: Apply Customer Entries
runtimeRef: by54
invokeType: LookupOk
description: Invoke LookupOk on
- type: page-closed
source:
page: Apply Customer Entries
runtimeId: by54
description: Page
name: FehlerFilterFürDebitorPostenAusgleich
description: Test recording
start:
profile: KALKULATION
parameters:
Cash Receipt Journal.Account No.:
type: string
default: 10000
Document No.:
type: string
default: RG10000
