-
Warehouse Insight
-
-
- Overview
- Hardware and Software Requirements
- Business Central Object Import and Merge
- Business Central Data Configuration
- Warehouse Insight Barcode Objects
- Warehouse Insight Web Service Installation
- Android Scanner Install
- Windows Scanner Installation
- Configuring the Software
- Uninstalling the Solution
- Modified Business Central Objects
- Source Versions
- Configure Business Central On-Premises Device Licenses
-
- 1. Introduction
- 2. Overview
- 3. Main Landing Page
- 4. Item Inquiry
- 5. Bin Inquiry
- 6. Advanced Inventory Count
- 7. Basic Count
- 8. Receiving
- 9. Put-Aways
- 10. Ad-Hoc Movements
- 11. Directed Movements
- 12. Picking
- 13. Shipping
- 14. Production Order Consumption
- 15. Production Order Output
- 16. Assembly Orders
- 17. License Plates
- 18. Scratchpad
- 19. Configuration
- Push Warehouse Insight Updates to Devices
-
- Print From Warehouse Insight
- DataLogic Falcon WiFi Configuration
- Controlling the Beep Sound Effect on DataLogic Scanners
- Warehouse Insight with NTLM Authentication
- Configure Windows Scanner for Business Central SaaS
- Connect Warehouse Insight Desktop Client to Business Central Cloud
- Datalogic Falcon X3 Scanner Timeout
- Clone Warehouse Insight Service for Business Central On Prem
- Configure Windows Scanner for Business Central On Prem
- Ad Hoc Move Module
- Display a Custom Image on Your Device
- Configure Scanner Settings for Memor 10/20 and Skorpio X5
- OAuth Login Options for Warehouse Insight 2.8
- Item Barcode Rules
- Set Up the Windows Desktop Client for Oauth (SaaS)
- Azure Active Directory (AAD) OAuth Configuration for Warehouse Insight 2.8+
- Change Locations on the Handheld Devices
- Barcode Symbology and Encoding
- Configure Data Caching in Warehouse Insight
- Configure OAuth Guest Tenant or GDAP Login for Warehouse Insight
- Configure Scanner Settings for Zebra
- Configure Scanner Settings for Honeywell
- Configure Scanner Settings for CipherLab
- Capture an Image on a Scanner Using Warehouse Insight
-
- Add Purchase Order Comments From Your Handheld
- View Purchase Order Comments on Your Handheld
- Capture Image on Sales Order
- Attaching Documents from the Scanner
- Ship and Invoice Sales Order
- Overriding Base Application Events via Design
- Sample Offline Application
- Sample Quantity Dialog Extensions
- Factboxes
- Over-Receiving from Handhelds
- Read barcodes Configured in LS Retail into Warehouse Insight
- Add Signature Capture to Warehouse Insight
- Use the Application Wizard in Warehouse Insight
-
- Proof of Delivery
- Fixed Asset
- Over Picking
- Inventory Quantity Adjustment
- Warehouse Insight Private Add-On Catalog
- Subcontract Receiving
- Two Stage Inventory Pick
- Warehouse Insight Quality Inspector Integration
- Post and Print Outbound Orders
- Ship-Post and Invoice
- Embedded License Plate
- Update Warehouse Receipt Bin
- Warehouse Insight Shop Floor Integration
-
WMS Express
-
License Plating
-
Dynamic Ship
-
- Configuring Dynamic Ship in Business Central
- Data Requirements for Dynamic Ship
- Overview
- Configuring EasyPost
- Get Started with Dynamic Ship
- Dynamic Ship Permissions
- Dynamic Ship Carrier Account Configuration
- How the Dynamic Ship Carrier is linked to the Business Central Shipping Agent
- How to Add Predefined Packages for Carriers
- Carrier Service Configuration Packages
- Set Up Carrier Loomis
- Canada Post Third Party Billing
- Enabling UPS SurePost on your EasyPost account
- Configure a UPS Digital Access Program Account
- Set Up Dynamic Ship Email
- Configure and Use Scales
- Enable and Use the External Rate Entry
- FedEx Commercial Invoice Requires Electronic Letterhead
- Freight Price Rules
- Create a Free Freight Campaign
- Generate Serial Shipping Container Code (SSCC)
- Add an International Shipping Address
- Override Customer Contact Source in Dynamic Ship
- Set USPS Media Mail Special Rate in Dynamic Ship
- Add the Certificate of Origin Report
- Dynamic Ship Go Live Checklist
- Order Packaging Setup
- Email Error Logging in Dynamic Ship
- Automated Tracking Updates in Dynamic Ship
- Address Requirements in Dynamic Ship
- Redirect to Warehouse Shipment with Dynamic Ship
- Preview Preferred Commercial Invoice in Dynamic Ship
-
- Dynamic Ship Process
- Use the Package Worksheet in Dynamic Ship
- Order Packaging in Dynamic Ship
- Use Quick Label in Dynamic Ship
- Create and Print Return Labels in Dynamic Ship
- How to Generate a Shipment Manifest
- Manifesting USPS Shipments
- Create a Freight Quote
- Create a Shipping Label for a Miscellaneous Shipment
- Copy Last Package
- Use Address Validation
- Use Pack Commands
- Item Tracking Lines and Overpacking in Dynamic Ship
- Inbound/Outbound and Return Label Enhancements in Dynamic Ship
-
- Create License Plate Templates
- Package Options
- Label Placeholders - Package Options
- Service Endorsement Options
- Bill Shipping Fees to a Customer's Account
- Payment Types for Alternate Billing
- Include Extra Text on Shipping Label
- Blind and Double Blind (Drop) Shipments
- Configure Customer Options
- Tax Identifiers
-
- How the Customs Information is Populated
- Reprint Shipping Labels using Dynamic Ship
- Include COD Charges with Shipping
- Zebra High Quality Print
- Ship Non-Regulated Hazardous Material
- Ship with Saturday Delivery
- Print Bill of Lading Report
- Chain Multiple Pack Commands
- Find Shipment and Package Tracking Numbers
- Assign Outbound Serial Number at Shipping Time
- Refund Shipment Label
- Actual Shipping Cost
- Pack Item Variants
- Respecting External Freight Costs
- Reconcile Carrier Invoice
- Role Tailored Client Shipping Scale Integration
- No Rates Returned For A Shipment
- Retrieve an Order ID
- Shipper Number Cannot Be Used
- Package Worksheet: Clear Address Cache
- Warehouse Shipment Posting Error
- USPS Ground Advantage
- Serial Shipping Container Code (SSCC) Labels
-
Shop Floor Insight
-
- Daily Time Report for Payroll Administrator
- Shift Scheduling with Shop Floor Insight
- Routing Step with Shop Floor Insight
- Color Coding Time Cards
- Production Order Assignment with Shop Floor Insight
- Streamline Processes with Work Instructions
- Cleaning up Barcodes in Business Central
- Configurable Business Central Payroll Export for ADP and other Payroll Solutions
- Production Dispatch Lists that Boost Efficiency
- How to use the Shop Floor Production Order job report as your default production order job card report
- How to Print Barcodes for Job Tasks in Shop Floor Insight
- How to automatically round time card line entries
- How to Print Barcodes for Production Order Operations
- How to record a quality inspection when output data is captured
- How to display the Shop Floor Insight Approver role in the "Explore All" page
- Shop Floor employees are having their shifts end prematurely
- How to record a quality inspection when a scheduler item is moved
- How to ensure supervisors only see time cards of their workers for approval
- Fix a "Company not licensed" error message in Shop Floor Insight
- Adding a New Employee & Printing a Barcoded Badge
- Filtering Production Orders on the Dispatch List in Shop Floor Insight
- How to Record Consumption
- How to Record Output
- The Supervisor / Employee Relationship
- Using Links in Shop Floor Insight
- Client Configuration Cards
- Shop Floor Activities
- Line Coloring
- How to Record a Comment
- Printing a Production Order Job Card
- Quality Inspections when Recording Output
- Changing the Work or Machine Center by Scanning a Barcode
- Dispatch List Filtering
- Automatically Assign Work and Machine Centers
- Time Card Line Rounding for Job Tasks
- Line Rounding of First Time Card Line
- Time Card Approval Process and Worksheet
- Include Other Paycodes for Overtime Calculations
- Automatic Filler Time Functionality
- Time Card Line Rounding for Shift Breaks
- Output to License Plate
- Production Order Analysis, Investigation, and Reporting Options in Business Central
-
- How to use the Shop Floor Production Order job report as your default production order job card report
- Shop Floor Insight Language Configuration
- Clock In Early to Midnight Shift using Shop Floor Insight
- Configure OAuth for Shop Floor Insight 7.8
- Fields Included in Shop Floor Insight’s Search Field
- Access and Configure Service-to-Service Authentication in Shop Floor Insight
- Configure Shop Floor Insight for automatic time splitting scenarios
- Shop Floor Client Configuration Cards Recommendations
- Configure OAuth Service-to-Service Connections in Shop Floor Insight
- Upgrading Shop Floor Insight Quality Inspections to use Quality Inspector
- De-Select a License Plate in the Shop Floor Insight Web Client
- Shop Floor Insight 7.12 with Quality Inspector and Job Tasks
- Modify the Shop Floor Insight Client Credentials
- Developer guide to Custom Shop Floor Insight badges and Printing Shop Floor Insight employee badges outside of Business Central
- Shop Floor Insight Security and Compliance Information
- Shop Floor Time Card Validation Rules
- Shop Floor Setup page
- Allocating Internal Labor Costs Using Projects and Shop Floor Insight
- How to Change the Date Format on the Shop Floor Insight client
- Example Line Rounding Rule for Lunch Breaks
-
- 1. Before you Begin with Shop Floor Insight
- 2. Installing Shop Floor Insight
- 3. Registering Shop Floor Insight
- 4. Configure Special Permissions in Shop Floor Insight
- 5. Configure Paycodes in Shop Floor Insight
- 6. Configure Activity Codes in Shop Floor Insight
- 7. Configure Shifts in Shop Floor Insight
- 8. Configure Shop Floor Employees in Shop Floor Insight
- 9. Configure Work Centers in Shop Floor Insight
- 10. Configure Client Configuration in Shop Floor Insight
- 11. Configure Time Zone in Shop Floor Insight
- Install and Configure Shop Floor Insight (SaaS)
- 13. Print Barcodes and Smoke Test in Shop Floor Insight
- How to do an upgrade to the Shop Floor Insight Windows service
- Shop Floor Insight Communication App Requirements
- Set Up Facial Recognition
- Install and Configure Shop Floor Insight (On Prem)
- How to Print Non-Productive Activity Codes (such as Lunch and Break) in Shop Floor Insight
-
- 1. Before You Begin with Shop Floor Insight
- 2. Navigating Business Central in Shop Floor Insight
- 3. Process Overview in Shop Floor Insight
- 4. Printing Barcodes in Shop Floor Insight
- 5. Tour of the Shop Floor Interface
- 6. Capture Shop Floor Data for Production Orders in Shop Floor Insight
- 7. Capturing Job Time in Shop Floor Insight
- 8. Closing Time Cards in Shop Floor Insight
- 9. Approving Time Cards in Shop Floor Insight
- 10. Calculate Overtime in Shop Floor Insight
- 11. Posting Shop Floor Data in Shop Floor Insight
- 12. Export Time in Shop Floor Insight
- Configure Output Clock on Behavior
- Add a Non-Productive Activity Code
- Shop Floor Insight: Use the Mobile Interface Without a Phone
- Shop Floor Insight: Shop Floor Native Phone Client
- Shop Floor Insight's Published Events
- Group Time Cards in Shop Floor Insight
- How to Report on Operators that did not Clock Off with Shop Floor Insight
- Shop Floor Work Type Rules
- Creating Multiple Time Cards with the Time Card Creation Wizard
-
- How to Record Consumption
- Filtering Production Orders on the Dispatch List in Shop Floor Insight
- Adding a New Employee & Printing a Barcoded Badge
- How to Record Output
- The Supervisor / Employee Relationship
- Using Links in Shop Floor Insight
- Client Configuration Cards
- Shop Floor Activities
- Line Coloring
- How to Record a Comment
- Printing a Production Order Job Card
- Quality Inspections when Recording Output
- Changing the Work or Machine Center by Scanning a Barcode
- Dispatch List Filtering
- Automatically Assign Work and Machine Centers
- Time Card Line Rounding for Job Tasks
- Line Rounding of First Time Card Line
- Time Card Approval Process and Worksheet
- Include Other Paycodes for Overtime Calculations
- Automatic Filler Time Functionality
- Time Card Line Rounding for Shift Breaks
-
- 401 Error Messages in Shop Floor Insight
- Troubleshoot Shop Floor Insight Issues
- How to troubleshoot "(400) Bad Request" errors in Shop Floor Insight
- Shop Floor Insight: Error Messages and Fixes
- Resolve URL ACL Issues
- Troubleshoot SSL Certificate
- Shop Floor Insight Production Go-Live Checklist
- Troubleshoot Zero Run Time Entries on Shop Floor Time Cards
-
Advanced Inventory Count
-
- Introduction: Advanced Inventory Count
- 3. Module Design
- 4. Performing a Full Count
- 5. Performing a Cycle Count
- 6. Inventory Counts with WHI
- 7. Appendix A – Report Options
- Setting Inventory Count Card As-Of-Date
- Setting Locations on the Count Card
- Setting Lot/Serial Number Tracking
- Setup of Posting Count Options
- Setting up Recounts in Inventory Count Module
- Reconciling the Count in Inventory Count Module
- Posting the Inventory Count
- Inventory Count Bin Blocking Options
- Calculating Count Period Codes
-
Counter Sales
-
-
- Payment Providers in Counter Sales
- Payment Provider Configurations in Counter Sales
- Payment Provider Selection Logic in Counter Sales
- Payment Networks in Counter Sales
- Set Up Payment Provider Extension EBizCharge in Counter Sales
- Set Up Payment Provider Extension Clover in Counter Sales
- Set Up Payment Provider Extension Moneris in Counter Sales
- Overview
- User Permissions
- Profiles (Roles)
- Counter Sales Setup
- Counter Sales Users
- Payment Methods
- Customer Accounts
- Reason Codes
- Take Order Wizard
- Counter Sales Orders
- Quick Scan
- Return Order Wizard
- Counter Sales Return Orders
- Price Check
- Enhanced Item Search
- Enhanced Contact Search
- My Locations
- Related Items
- Price Overrides
- Lost Sales
- Special Order Items
- Daily Close
- Contact Sales History
- User Salespersons
- Set up Star TSP Printers for Receipt Printing for Counter Sales
- Set up Epson TM-T88 Printers for Receipt Printing for Counter Sales
- Use Gift Cards in Counter Sales
- Use Cash Drawers / Registers in Counter Sales
-
-
Product Configurator
-
- Version Information
- Product Configurator Configurations
- Product Configurator Item Category
- Product Configurator Choice Combination
- Product Configurator Option Choice
- Product Configurator Bulk Edit
- Product Configurator Options
- Product Configurator BOM
- Use Quoting Items
- Additional Choices in Product Configurator
- Use Check Configuration
- Use Line Type and Indent Options
- Update Routing Run Times
- Add Option Choice Comments
- Use Rule Builder
-
- 1. Application Description
- 2. Installation
- 3. Using the Product Configurator
- Text Template Variables
- Update Lookup Display Order in Product Configurator
- Copy Values in Product Configurator
- Choice Sets in Product Configurator
- CALLEDFROM Variables in Product Configurator
- Rule Builder Lookup Configurations in Product Configurator
-
NavXtender
-
- Articles coming soon
-
- Install NavXtender
- Add Languages in NavXtender
- Having Issues?
- SharePoint Support
- Why am I having troubles accessing SharePoint via UNC?
- Why is the drag and drop not working, or NavXtender button not visible?
- Are you using an anti-virus application?
- Do I need to install NavXtender on every computer?
- I still need help. Who can provide technical support?
- I would like to use NavXtender with my custom pages. How do I do that?
- NavXtender Language Support
- NavXtender Web Service Authentication 401
- NavXtender Web Service Troubleshooting
- Should I install the 32-bit or 64-bit version of NavXtender?
- What changes does NavXtender make to Microsoft Dynamics NAV?
- What is the difference between the stand-alone and integrated version of NavXtender?
- What versions of Microsoft Dynamics NAV is NavXtender compatible with?
- Why am I getting a permissions error?
- Item Attribute Mapping in Product Configurator
-
DocXtender
-
Barcode Generator PowerTool
-
PrintNode Connector PowerTool
-
Miscellaneous
-
Graphical Scheduler
-
- Exploring the Graphical Scheduler Screen
- Changing the production schedule of an operation
- The Graphical Scheduler Views
- Applying a Filter
- Modifying the Dates and Zoom
- Modifying the Graphical Scheduler Settings
- Use the Is Late field
- Graphical Scheduler: Use the Warehouse Pick Assignment Feature
- Sort Work Centers and Machine Centers
- Change the Production Order Status from the Graphical Scheduler
- Display Firm Planned and Planned Production Orders in Graphical Scheduler
- Anything Feature in Graphical Scheduler
- Display Service Order Allocations in Graphical Scheduler
- Default a Time Frame in Graphical Scheduler
- How to Visualize Sales Orders Grouped by Location in the Graphical Scheduler
- Configure and Use Date Presets in Graphical Scheduler
- Graphical Scheduler API, how to use the JSON directly for a custom Gantt chart
- Allowing Changes with the Graphical Scheduler Anything Data Source
- How to Visualize Work Center Capacity and Load in Graphical Scheduler
- Graphical Scheduler How to Show Work Center Operations Grouped By Production Order No.
-
MxAPS
-
- Introduction
- Generate an MxAPS Schedule
- Production Cells
- Setup
- Delay Increment
- Scheduling Configurations
- Scheduling Rules
- Scheduling Rule Card
- Scheduling Rule Parameters
- Segment Codes
- Alternate Group List
- Alternate Group Card
- Schedule Result List / Schedule Results
- Schedule Result
- Order Schedule List
- Machine Load Details
- Operation Schedules
- Order Attribute Schedules
- Commit Results
- Result KPI FactBox
- Schedule Rule Details
- Machine Alternate Constraints
- Mx Item Card extends Item Card
- Resource Requirements
- Machine Constraints
- Machine Transfers
- Shop Calendar Exceptions
- Configure Azure Storage for MxAPS
- Production BOM Component Constraint Setup
- How to use setup eliminations to reduce setup time
- How to Identify Material Shortages in an MxAPS Schedule
- How to identify which production orders are shown in the Machine Schedule Summary
- Configuring Native Setup Eliminations
- Inventory Availability Constraints for Multi-Level BOMs with MxAPS
- Understanding Idle Allowance vs. Absolute Allowance in MxAPS
- How MxAPS Uses Inventory During Scheduling
- Understanding the Machine Schedule Summary in MxAPS
- Understanding Why MxAPS Moved My Production Order
- How MxAPS Reduces Changeovers
- Understanding MxAPS Lead Time, Fence Type, and Material Availability
- Does MxAPS Schedule Forward or Backward
- Which Production Order Statuses Should I Include in an MxAPS Schedule?
- How to Configure a Rush Order in MxAPS
- How to Modify an MxAPS Schedule
- Preventing Lower-Ranked Orders from Filling Schedule Gaps
- Troubleshooting Unexpected Results in MxAPS
- Using Tooling and Labor as Secondary Constraints in MxAPS
- How MxAPS Handles Schedule Changes, Manual Moves, and Long-Lead-Time Orders
- Using Work Centers with Interchangeable Machine Centers in MxAPS
- Grouping Production Operations into Order Sets in MxAPS
- Sequencing Similar Jobs and Reducing Changeovers in MxAPS
- Configure a Read-Only View in Graphical Scheduler
-
Enhanced Planning Pack
-
- Enhanced Plan Vendor Summary
- Enhanced Forecasting Worksheet
- Item Planning Review
- Multi-Level BOM Viewer
- Routing Analysis
- Enhanced Planning Worksheet
- Configure the Sales and Inventory Forecast for the Enhanced Planning Pack
- Item Planning Review: Customize the Entry Types
- Enhanced Forecasting Worksheet: Customize the Predicted Value and Change Item Planning Expressions
- Change Orientation of the Multi-Level Bill of Material Visualizer in Enhanced Planning Pack
- Create Custom Views in Enhanced Planning Worksheet and Order Fulfillment Worksheet
- How does the Planning Worksheet Purchase Plan calculate the amount to purchase?
- Planning Concepts and Parameters in the Enhanced Planning Worksheet
- Excluding Expiring Inventory from Purchase Planning on the Enhanced Planning Worksheet
- How to Plan Purchases for Demand Across Multiple Locations
- How to Use Scheduled Routing Analysis Results
- How Reordering Policies Affect the Enhanced Planning Worksheet
- How Forecasts Affect the Enhanced Planning Worksheet Purchase Plan
- How To Configure Item Planning Review to Calculate Usage from Specific Item Ledger Entries
- Plan Purchases for Multi-Level Components Using Finished-Item Forecasts
- Trace Raw Material Demand Through a Multi-Level BOM in Enhanced Planning Pack
- How to Identify the Source of Demand in the Enhanced Planning Worksheet
- Analyzing Production Order Variances with Production Order Analysis
- Production Order Analysis, Investigation, and Reporting Options in Business Central
- Enhanced Planning Pack Integration Events
-
Order Ship Express
-
Order Fulfillment Worksheet
-
- Introduction
- Recalculate Availability with the Order Fulfillment Worksheet
- Automatic Reservation with the Order Fulfillment Worksheet
- Split Allocation with the Order Fulfillment Worksheet
- Create Warehouse Shipments with the Order Fulfillment Worksheet
- Create Picks with the Order Fulfillment Worksheet
- Use the Pick Worksheet in the Order Fulfillment Worksheet
- Assemble to Order with the Order Fulfillment Worksheet
- Order Fulfillment Worksheet Published Events
- Order Fulfillment Worksheet Statuses
- Create Custom Views in Enhanced Planning Worksheet and Order Fulfillment Worksheet
- Create and Edit a Custom View in the Order Fulfillment Worksheet
- Create and Edit an Advanced Line Filter in the Order Fulfillment Worksheet
- Use the Movement Worksheet in the Order Fulfillment Worksheet
-
Import Export PowerTool
-
Quality Inspector
-
- Configure Grades
- Validate Production
- Automate Production
- Enable Functionality Per Quality Inspector
- Create Quality Inspections for Receipts
- Quality Inspector’s Published Events
- Set Up and Configure Azure Blob Storage and Azure Document Intelligence with Quality Inspector
- Create a Test Based on a Vendor
- Use Auto Output Configuration in Quality Inspector
- Filter by Item in Quality Inspector
- Create a Receiving Rule in Quality Inspector
- Create Automatic Tests for Sales Returns Without Warehouse Receipts in Quality Inspector
- Create a Warehouse Movement Rule in Quality Inspector
- Create a Production Rule in Quality Inspector
- Select which Tests are Considered when Evaluating Lot Grade Restrictions in Quality Inspector
- Reference a Field from an Item Card or an Item Attribute in Allowable Conditions or Pass Conditions
- Set a Database Value in a Workflow Response
- Restrict a Field’s Choices Using Another Field Using Quality Inspector
- First Article Inspection Report (FAIR Form 3)
- Schedule Automated Tests with Quality Inspector
- Use Field Level Work Instructions in Quality Inspector
- Use Test Generation Rule Trigger to Automate Creation of Quality Inspection Tests
- Use Assembly Output Integration in Quality Inspector
- Override a Test Grade Using Best Practices in Quality Inspector
- Configure Periodic Tests in Quality Inspector
- Configure Periodic Tests on any Lots Within a Certain Container in Quality Inspector
- Create a Test Generation Rule for a Specific Item in Quality Inspector
- Available User Interfaces for Recording Quality Inspections
- Create a Test Generation Rule for a Category of Items in Quality Inspector
- Capture the Container (Vat/Vessel/Bin) from the Production Order when a Test is Made from a Production Order in Quality Inspector
- Automate Test Creation when Posting a Purchase Receipt with Warehouse Handling
- Enable Purchase Order Release Integration in Quality Inspector
- Use the Sample Source feature on the Quality Inspector Template
- Quality Inspectors' and Quality Inspection Permissions
- Quality Inspector Setup
- Skip-Lot Thresholds in Quality Inspector
- Quality Inspectors and Quality Inspection Permissions Page
- Implement CFR Section 42 Subpart C while using Quality Inspector
- Implement a "Test Every 'X' Lots" Scenario with Skip-Lot in Quality Inspector
- Sampling and Skip Lot in Quality Inspector
- Implement Skip Lot with Receiving in Quality Inspector
- Skip Lot Inspections in Quality Inspector
- Create an Inspection Checklist with an Override Checkbox
- Quality Inspection Test Results Matrix
- Quality Inspection Fields
- Move Product from One Bin to Another Bin Automatically in Quality Inspector
- First-off inspections, First Article Inspections, and Initial Production Checks Using Quality Inspector
- Create PDF Attachments Automatically When a Test Finishes in Quality Inspector
- Use Attach as PDF to Automatically Create a PDF of a Certificate of Analysis and Other Quality Inspection Reports
- Use Adaptive Cards in Teams and Power Automate with Quality Inspector
- Quality Inspector Expression Examples
- How to Create a Facility Readiness Check for a Location
- How to Create a Work Station or Production Line Readiness Check for a Work Center
- How to Record Quality Inspection Tests on a tablet, phone, or other mobile device
- Quality Inspector and the Microsoft Quality Management Extension
- Non-Conformance Reports (NCRs) in Quality Inspector 7.26
- Implementing ANSI Z1.4 C=0 Sampling with Quality Inspector
- What is Skip-Lot Inspection?
- Advanced Quality Inspector Source Configuration List
- Quality Inspector Source Configuration Card
- Quality Inspection Grades
- Quality Inspection Test Generation Rules
- Understanding Test Generation Rules and Source Configuration in Quality Inspector
- Performing Quality Inspections Before Serial or Lot Numbers Are Posted
- How to Prevent Receiving a Purchase Order Until a Quality Inspection Test is Completed
- Designing Large Dimensional Inspection Plans in Quality Inspector
- Configuring Nominal Dimensions and Symmetric/Asymmetric Tolerances
- Choosing Where to Store Quality Specifications in Quality Inspector
- Using Special Characters in Quality Inspection Field Choices for Threshold Categories
- Permission Sets for Quality Inspector
- Prevent Production Output Until a Quality Inspection Test Passes
- Set Up and Configure Quality Inspector
- Understand Quality Inspection Templates and Test Generation Rules
-
- Assign Tests to an Inspector
- Create a Purchase Order Test
- Receiving Automation
- Assign and Review Tests in Quality Inspector
- Create Ad Hoc Quality Tests in Quality Inspector
- Perform Inventory Movement in Quality Inspector
- Create Quality Inspection Template and Connect to a Customized Table in Quality Inspector
- Create a Test Using Test Results in Quality Inspector
- Create a Test in Quality Inspector that is Available with Microsoft Teams
- Block and Unblock Lot Transactions in Quality Inspector
- Restrict the Use of a Lot Transaction When a Test Fails in Quality Inspector
- Manage Image Attachments in Quality Inspector
- Automate Block and Unblock Lot Transactions in Quality Inspector
- Collect Multiple Samples in Quality Inspector
- Set Values with Copilot in Quality Inspector
- Use Numeric Expressions (Calculated Field) in Quality Inspector
- Use embedded expressions within acceptable values and pass conditions
- Look up Specifications from Another Table when Creating Quality Inspection Tests
- Use Tools in Quality Inspector
- Create a Purchase Return Order from a Test in Quality Inspector
- Use Measurement Notes and Comments in Quality Inspector
- Warehouse Insight Quality Inspector Integration
- Take and Attach a Picture to a Quality Inspection Test
- Create a Re-test in Quality Inspector
- Create a Transfer Order to Move Material from a Directed Pick Environment to a Non-Warehouse Location in Quality Inspector
- Move Product Automatically from One Bin to Another Bin in Quality Inspector
- Create and Use a Balloon/Bubble Template in Quality Inspector
- Use Quality Inspection Tests
- Use Quality Inspection Templates
- Use Quality Inspector with Power Automate
- Create a Test Automatically with a Put-Away or Movement into a Bin in Quality Inspector
- Create a Test Automatically on Production Output in Quality Inspector
- Create a Test Automatically with Assembly Output in Quality Inspector
- Add Attachments to Inspection Test Plans and Quality Inspection Tests in Quality Inspector
- Copy Quality Inspection Attachments Automatically in Quality Inspector
- Sample Workflows for Quality Inspector: Moving Items, Initiating a Retest, and Discarding Failed Stock
- Route Put-aways to Inspection Bins in Quality Inspector for QC Hold locations
- Create a Test from Sales Order Production Planning in Quality Inspector
- Attach Files to PDF Non-Conformance Reports in Quality Inspector
- How to require a Quality Inspection Test before moving to the next step in an operation
- Migrate Between Quality Management and Quality Inspector
- Quality Inspector Failure Analysis Tool
- Use Basic Signatures in Quality Inspector
- Recording Notes in Quality Inspector
- Configure Work Instructions in Quality Inspector
- Quality Inspection Test Values
- Quality Inspection Test Results Matrix (duplicate)
- Quality Inspection Sample Worksheet
- Quality Inspection Chart Values
- Select Create Test Behavior and Find Existing Behavior in Quality Inspector
- Create a Multi-Step Approval Workflow to Finish a Quality Inspection Test
- How to Place Part of a Lot On Hold in Quality Inspector
- How to Scan Paper Quality Inspection Forms into Quality Inspector
- Using the Quality Inspector Failure Analysis Tool
- Sample Bulk Receipts of Untracked Items in Quality Inspector
- How Quality Inspector Supports SQF Audit Readiness
- Handle Items That Fail After a Lot Previously Passed Inspection in Quality Inspector
- Create an Ad Hoc Quality Inspection Test for an Item Already in Stock
- Manage COA-Required Purchase Receipts with Quality Inspector
-
Cycle Count Scheduler
-
Safety Logbook
-
Maintenance Manager
-
App Registration
-
- Articles coming soon
-
- Articles coming soon
-
Extending DocXtender for Drag-and-Drop Document Attachments to Any Table and Page
If a page in Business Central does not have the Document List factbox you will first need to add it to the page before DocXtender will work.
Starting with Business Central 25, you will need to create a codeunit to subscribe to 3 Business Central events in order for the factbox to allow attachments. Once the base attachment functionality works, DocXtender will also work.
The events to subscribe to are:
- OnAfterInitFieldsFromRecRef in the “Document Attachment” table
- OnAfterGetRefTable in the “Document Attachment Mgmt” codeunit
- OnAfterOpenForRecRef in the “Document Attachment Details” page
The Document Attachments table supports tables with up to 3 primary key fields: “No.”, “Document Type”, and “Line No.”. At minimum the “No.” field for the document attachment must be set, the other primary key fields are optional.
If the table you’re adding attachments to, whether it’s a custom table or built-in Business Central table, has more or different primary keys, you may not be able to use Document Attachments or may have to be creative in how you set the primary key values.
Once these events have been implemented, both the standard attachment functionality and DocXtender will work.
For Business Central prior to version 25:
DocXtender (2.1.7982.2 and newer) provides support using event subscribers to extend its drag-and-drop functionality for document attachments to any table or page in Business Central. The pattern follows the similar approach to extend the standard Business Central functionality for Document Attachments. You may wish to extend the standard functionality at the same time as extending the DocXtender functionality.
- Create a page extension.
- Add Document Attachment FactBox to the page extension.
- Add the four required procedures for event subscribers to specify the table and filters associated with the related record for the Document Attachment FactBox:
- EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnGetCustomRecRefFromDocAttachment’, ”, false, false): sets the table for the related record when attaching documents using the drag and drop functionality.
- EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnAfterOpenForRecRef’, ”, false, false): sets the filters for the related record when opening the attached document for DocXtender customizations.
-
- EventSubscriber(ObjectType::Page, Page::”Document Attachment Details”, ‘OnAfterOpenForRecRef’, ”, false, false): sets the filters for the related record when opening the attached document for standard functionality.
- EventSubscriber(ObjectType::Page, Page::”Document Attachment Factbox”, ‘OnBeforeDrillDown’, ”, false, false): (optional) sets the table for the related record when attaching documents using standard functionality.
Extending DocXtender Example
The following provides an example on how to extend DocXtender for the Released Production Order page:
- Create a page extension.
- Add the standard Document Attachment FactBox:
pageextension 50600 "IWX Released Prod. Order" extends "Released Production Order"
- Add procedures for the event subscribers:
- Set the table for the related record when attaching documents using the drag and drop functionality:
[EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnAfterOpenForRecRef’, ”, false, false)]
local procedure HandleOnAfterOpenForRecRefDocXtender(var precDocumentAttachment: Record “Document Attachment”; var prrRecordRef: RecordRef)
var
lfrFieldRef: FieldRef;
lcodRecNo: Code[20];
begin
case prrRecordRef.Number of
Database::”Production Order”:
begin
lfrFieldRef := prrRecordRef.Field(2);
lcodRecNo := lfrFieldRef.Value;
precDocumentAttachment.”No.” := lcodRecNo;
end;
end;
end;
-
- Set the document number for the related record when opening the attached document for DocXtender customizations:
local procedure HandleOnAfterOpenForRecRefDocXtender(var precDocumentAttachment: Record “Document Attachment”; var prrRecordRef: RecordRef)
var
lfrFieldRef: FieldRef;
lcodRecNo: Code[20];
begin
case prrRecordRef.Number of
Database::”Production Order”:
begin
lfrFieldRef := prrRecordRef.Field(2);
lcodRecNo := lfrFieldRef.Value;
precDocumentAttachment.”No.” := lcodRecNo;
end;
end;
end;
-
- Set the filters for the related record when opening the attached document for standard functionality:
[EventSubscriber(ObjectType::Page, Page::"Document Attachment Details", 'OnAfterOpenForRecRef', '', false, false)]
local procedure OnAfterOpenForRecRef(var DocumentAttachment: Record "Document Attachment"; var RecRef: RecordRef);
var
lfrFieldRef: FieldRef;
lcodRecNo: Code[20];
begin
// Set filter for custom record when opening document attachment details
case RecRef.Number of
Database::"Production Order":
begin
lfrFieldRef := RecRef.Field(2);
lcodRecNo := lfrFieldRef.Value;
DocumentAttachment.SetRange("No.", lcodRecNo);
DocumentAttachment.SetRange("Line No.", 0);
end;
end;
end;
-
- Set the table for the related record when attaching documents using standard functionality:
[EventSubscriber(ObjectType::Page, Page::"Document Attachment Factbox", 'OnBeforeDrillDown', '', false, false)] local procedure OnBeforeDrillDown(DocumentAttachment: Record "Document Attachment"; var RecRef: RecordRef); var lrecProductionOrder: Record "Production Order"; begin // Set the table for the custom record, when attaching documents manually case DocumentAttachment."Table ID" of Database::"Production Order": begin RecRef.Open(Database::"Production Order"); if lrecProductionOrder.Get(lrecProductionOrder.Status::Released, DocumentAttachment."No.") then RecRef.GetTable(lrecProductionOrder); end; end; end;
5 out Of 5 Stars
1 rating
| 5 Stars | 100% | |
| 4 Stars | 0% | |
| 3 Stars | 0% | |
| 2 Stars | 0% | |
| 1 Stars | 0% |
23 Comments
Leave A Comment Cancel reply
You must be logged in to post a comment.
Hello ,
Is there any subscriber or exposed procedure that I can use to trigger the document upload to sharepoint using API?
Thanks,
Muaaz
Hello,
The code under the **“Sample Codeunit”** section is not being displayed correctly. I can see the heading and the beginning of the snippet (`codeunit 50200 “My Table Attachment Mgmt.”`), but the rest of the sample code is missing.
I have tested this in both **Microsoft Edge** and **Google Chrome**, and the issue occurs in both browsers.
Could you please check and make the sample code visible correctly?
Thank you.
I will track down that missing sample.
Note that as of DocXtender 2.4 the majority of tables should now work out of the box as long as the “Documents” factbox is visible, so all old subscribers can be removed – this codeunit should not be required at all.
The “Document Attachment Factbox” page is deprecated as of BC version 25.0, replaced by “Doc. Attachment List Factbox” which lacks an “OnBeforeDrillDown” event.
Is it safe to replace with “Doc. Attachment List Factbox” and the “OnAfterGetRecRefFail” event?
The Release Notes for DocXtender indicate that the majority of tables should now work out of the box and all old subscribers can be removed:
https://kb.dmsiworks.com/knowledge-base/release-notes-docxtender/
We’re seeing an issue with DocXtender drag‑and‑drop on the General Journal: files upload successfully (the DocXtender UI reports “uploaded”), but the attachment/link does not appear in the page Links/Attachments factbox. I’d appreciate help reproducing and resolving this.
Summary
Product: DocXtender (IWX)
Symptom: After dragging a file to the DocXtender drop zone while on a General Journal page/line, DocXtender reports the file uploaded but the document/link does not appear in the page’s Links/Attachments factbox (nor in table Document Attachment filtered for that record).
Pages affected: General Journal (page “General Journal”) and Gen. Journal line context; we also prepared handling for G/L Entry.
Expected: After upload, a Document Attachment record should be created for the current record (Table ID / No. / Line No.), and the Links/Attachments factbox (or Links systempart) should show the link immediately.
What we’ve done so far
1. Added the Document Attachment factbox to the General Journal page and to General Ledger Entries
2. Implemented event subscribers to wire up Document Attachment relations for the Gen. Journal Line and G/L Entry contexts
3.Verified that when DocXtender reports “uploaded”, a Document Attachment may be created (or at least DocXtender reports completion), but the created Document Attachment is not linked/visible in the Links/Attachments part for that Gen. Journal Line (the Links/Attachments UI remains empty).
Repro steps (how we test)
Open General Journal (page “General Journal”) and select a journal line (Gen. Journal Line context).
Drag a file into the DocXtender drop zone.
DocXtender UI shows “uploaded” (success message).
Open the Document Attachment FactBox or Links tab — the new link does not appear.
Questions / things we need from Insight Works
Does DocXtender fire OnAfterOpenForRecRef for Gen. Journal Line RecRef when dragging to the drop zone? If so, is there any special handling required for Journal lines vs. master records?
Which fields in the RecRef does DocXtender use for the record reference? (We assumed RecRef.Field(1) = primary key or RecRef.GetTable(…) yields typed record)
Is DocXtender expected to create Document Attachment table rows or is it expected that an event subscriber must create/validate them? (We subscribed to Codeunit::”IWX DocXtender” OnAfterOpenForRecRef and attempted to set DocumentAttachment.Validate(“Table ID”, …) and Validate(“No.”, …).)
If DocXtender reports “uploaded”, but the Links part does not show a link, is there a known reason?
If DocXtender needs to call or we need to call Page::”Document Attachment Details”.OpenForRecRef(RecRef) or .RunModal() after setting the RecRef — is that required to make the association visible?
Any example code or best practice for attaching documents (drag-and-drop) to lines (Gen. Journal Line) rather than header/card records? (Sample subscriber code that works with Gen. Journal Line would be ideal.)
Are there any known compatibility issues with BC versions where the factbox was replaced with a list part, requiring different integration logic?
Request
Please advise the expected integration flow for DocXtender drag/drop on line-level pages (like Gen. Journal Line).
If a patch or code sample is available to handle Gen. Journal Line (RecRef->Document Attachment mapping), please provide it or confirm the correct RecRef fields/order to use.
Thank you — we rely on DocXtender heavily and would like to get drag-and-drop working for the General Journal lines (and ensure the uploaded file appears in the Links/Attachments factbox immediately).
Base Business Central does not support attachments (table Document Attachment 1173) or record links (table RecordLinks 2000000068) to multiple primary key records (not counting document type) and the primary key field must be 20 characters or less. Even if you find a way to make the Document factbox work in base Business Central, DocXtender will not recognize the multiple keys.
Hello,
Is there any way we can change the of the file before creating it in SharePoint?
No, they are not configurable. The file name comes directly from the file that you dragged in and the path is based off of the document that it is attached to.
Hey Travis,
I can see there is an event for OnAttachFile but when I try to debug this it is not being caught by the debugger, I have an issue where I have a table where users can upload documents for sales order and customer (based on field in the page) and then I want to move the link to the other page (Customer or Sales Order), additionally Is there any way I can modify the Json object, I want to change the folder Name where the file is created in the SharePoint ( ex: my table is called Attachment Entry so in the Share point I get the files from customer and sales order under this folder).
No. The SharePoint subfolders will be created based on the card that the document is originally attached to and are not configurable or extendable:
– SharePoint Host
– SharePoint Site – (Site from setup)
– SharePoint Library (Documents – non-configurable)
– SharePoint Folder – (Folder from setup – optional)
– Document Type – (i.e. Sales Order)
– Document Number – (sub-folder)
– Attachments – (files)
DocXtender is not involved in the flow process, so the original link will remain usable. The SharePoint path would remain from where it was originally attached and would not be altered to reflect later documents.
If the file storage behavior is set to Share Point, and Document Attachments and Links FactBoxes are added to Production Orders, are there additional event subscribers needed so that when files are saved using DocXtender these are saved as links against the record instead of document attachments?
The Business Central page must first have a “Document Attachment FactBox” pointing at a valid single record on any page you want to use DocXtender. The Attachment and Link factbox (not just the tab) must also be visible, so you may need to open personalization to add it. The events will be the same regardless of which method is used.
When adding attachments to a new page, first check if the user can manually attach documents to the page using the base Business Central drag & drop function. Click the “Attach file” action (or the + sign if links) to try both browsing and drag & drop to upload a file instead of using DocXtender.
Hello –
I’ve extended the base Document Attachment functionality so that it was able to handle tables with multi-field PKs.. And using the above information, was able to make DocXtender work in this situation as well.
EXCEPT for one thing – after successfully attaching the file, the user is shown a confirmation saying “File attached successfully. Would you like to Open the Attachments Page?”
If the user selects yes, the Attachment Details Page opens, but the file is not visible.
If the user then closes the page (or selects No when they were prompted), the Document Attachment factbox CORRECTLY indicates that the file was attached, and if you drill down on that (which opens the Attachment Details Page), you can see the file.
Are there any events that we can subscribe to with respect to the Confirmation box? I’d either like to suppress it entirely, or review the filters that are being applied to when the Attachment Details Page is opened.
Rgs,
rpd
You can set Drop Behavior = Silent on the DocXtender Setup page.
Hello,
Does it work too if i have more than one field in the primary key.
I tried but it does not work
[EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnGetCustomRecRefFromDocAttachment’, ”, false, false)]
local procedure OnGetCustomRecRefFromDocAttachmentDocXtender(precDocumentAttachment: Record “Document Attachment”; var prrRecordRef: RecordRef; var lbRecordRefHandled: Boolean);
var
DocXtenderTest: Record “Document Checklist Line”;
begin
if not lbRecordRefHandled then begin
case precDocumentAttachment.”Table ID” of
Database::”Document Checklist Line”:
begin
prrRecordRef.Open(Database::”Document Checklist Line”);
if DocXtenderTest.get(precDocumentAttachment.”Document Checklist Code”, precDocumentAttachment.Type, precDocumentAttachment.”Document Check Line No”) then begin
prrRecordRef.GetTable(DocXtenderTest);
lbRecordRefHandled := true;
end;
end;
end;
end;
end;
The PredocumentAttachement does not contain the fields i need, I added three field to the document attachment table and it work for the system functionality.
Is there any subscriber where I can validate these fields or something else?
The base Business Central page must have a “Document Attachment FactBox” pointing at a valid single record on any page you want to use DocXtender.
As far as I can tell from looking at the tables, base Business Central does not support attachments (table Document Attachment 1173) or record links (table RecordLinks 2000000068) to multiple primary key records (not counting document type). You would need to check with your Business Central partner or Microsoft about how to add an attachment with dual primary keys.
DocXtender only adds the drag & drop function – you still need to add the attachment function to the page first in base Business Central.
Hello Travis ,
Thanks for your reply. I tried to extend the standard functionality too but it does not work for multiple primary key, so i think i have to change my key to single key in order to get it to work.
I already added the fact box to the page but i don’t think it will work ( maybe it is the same as the sales line or purchase line )
I would appreciate if you have another solution.
Thanks
Once you have the Attachment and Link factboxes working in base Business Central, then DocXtender will be able to be used.
I was able to get this working, at least the example above attaching to Released Production Orders (which was quite helpful as this is one of the pages that I needed attachments on).
All the quotation marks in the examples are wrong. This is probably from the web page re-writting them to fancy quotes or something.
There are line breaks also that need to be removed.
** in launch.json, set “startupObjectId”: 99000831,
** Not stated in instructions: You need to add IWX dependencies to app.json
“dependencies”: [
{
“id”: “d50afbbf-aff3-4dac-bce7-8686b375b994”,
“name”: “DocXtender”,
“publisher”: “Insight Works”,
“version”: “2.1.8635.2”
}
],
Here is copy/paste of my working code. It may break also when the page renders it, but it works.
namespace MHW.DocXtender;
using Microsoft.Manufacturing.Document;
using Microsoft.Foundation.Attachment;
pageextension 50106 “IWX Released Prod. Order” extends “Released Production Order”
{
layout
{
addfirst(factboxes)
{
part(“IWX Attached Documents”; “Document Attachment Factbox”)
{
ApplicationArea = All;
Caption = ‘Attachments’;
SubPageLink = “Table ID” = const(5405),
“No.” = field(“No.”);
}
}
}
}
codeunit 50106 “IWX codeunit”
{
EventSubscriberInstance = StaticAutomatic;
[EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnGetCustomRecRefFromDocAttachment’, ”, false, false)]
local procedure OnGetCustomRecRefFromDocAttachmentDocXtender(precDocumentAttachment: Record “Document Attachment”; var prrRecordRef: RecordRef; var lbRecordRefHandled: Boolean);
var
lrecProductionOrder: Record “Production Order”;
begin
// Set the table for the custom record, when attached documents using drag-and-drop with DocXtender
if not lbRecordRefHandled then begin
case precDocumentAttachment.”Table ID” of
Database::”Production Order”:
begin
prrRecordRef.Open(Database::”Production Order”);
if lrecProductionOrder.Get(lrecProductionOrder.Status::Released,
precDocumentAttachment.”No.”) then begin
prrRecordRef.GetTable(lrecProductionOrder);
lbRecordRefHandled := true;
end;
end;
end;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::”IWX DocXtender”, ‘OnAfterOpenForRecRef’, ”, false, false)]
local procedure OnAfterOpenForRecRefDocXtender(var precDocumentAttachment: Record “Document Attachment”; var prrRecordRef: RecordRef);
var
lfrFieldRef: FieldRef;
lcodRecNo: Code[20];
begin
// Set filter for custom record when opening document attachment details
case prrRecordRef.Number of
Database::”Production Order”:
begin
lfrFieldRef := prrRecordRef.Field(2);
lcodRecNo := lfrFieldRef.Value;
precDocumentAttachment.SetRange(“No.”, lcodRecNo);
precDocumentAttachment.SetRange(“Line No.”, 0);
end;
end;
end;
[EventSubscriber(ObjectType::Page, Page::”Document Attachment Details”, ‘OnAfterOpenForRecRef’, ”, false, false)]
local procedure OnAfterOpenForRecRef(var DocumentAttachment: Record “Document Attachment”; var RecRef: RecordRef);
var
lfrFieldRef: FieldRef;
lcodRecNo: Code[20];
begin
// Set filter for custom record when opening document attachment details
case RecRef.Number of
Database::”Production Order”:
begin
lfrFieldRef := RecRef.Field(2);
lcodRecNo := lfrFieldRef.Value;
DocumentAttachment.SetRange(“No.”, lcodRecNo);
DocumentAttachment.SetRange(“Line No.”, 0);
end;
end;
end;
[EventSubscriber(ObjectType::Page, Page::”Document Attachment Factbox”, ‘OnBeforeDrillDown’, ”, false, false)]
local procedure OnBeforeDrillDown(DocumentAttachment: Record “Document Attachment”; var RecRef: RecordRef);
var
lrecProductionOrder: Record “Production Order”;
begin
// Set the table for the custom record, when attaching documents manually
case DocumentAttachment.”Table ID” of
Database::”Production Order”:
begin
RecRef.Open(Database::”Production Order”);
if lrecProductionOrder.Get(lrecProductionOrder.Status::Released, DocumentAttachment.”No.”) then
RecRef.GetTable(lrecProductionOrder);
end;
end;
end;
}
This is a test. Brian Neufeld will delete it.
These DocXtender procedures do not add the ability to attach documents, it only adds a drag & drop interface. The attachment fasttab must be working in base Business Central before trying to use DocXtender. The above procedures only apply after you have the base Business Central attachment working first.
Check that the user can manually attach documents to the page using the base Business Central attachment function. Click the “Attach file” action (or the + sign if links) to try both browsing and drag & drop to upload a file instead of using DocXtender. If that does not work, you may be trying to attach the file before the record has been created.
I copied and pasted these procedures into an EventSubscriber codeunit, to extend this to a custom master table, but the codeunit IWX DocXtender” is not being recognized. How can I fix this?