• Sage 100c 2022 Operations Management Work Ticket Printing

    We have Sage 100c 2022 with Operations Management. I would like to add a button to the Work Ticket Printing screen that replaces the Print button, launches a script to cycle through the JT_WorkTicketAttachments file for all attachments for the current…

  • Update existing PO lines

    I am new to this so please bear with me. I have the following script ( i can only post a portion of the code. The SPAM blocker flagged it as malicious) that is used to update two UDF fields from a .csv file. It is called via a custom application. I am…

  • Copy UDF Values from AR_CUSTOMER.M4T to Equivalent UDFs on new Sales Orders

    New to this forum, and new to using the Business Object Interface.  


    I'm on Sage 100 2022 Standard, and am about to implement Sage Alerts & Workflow.  One of the tasks I will be creating will periodically look at all open Sales Orders and…

  • Persistent connection to Sage BOI with PHP?

    Our company is working on a locally hosted PHP web-server that connects with our local Sage 100 instance for our internal use. So far it's working pretty well, but it takes about 10 seconds to open up a session in Sage 100 with the BOI and execute a script…

  • File Picker Dialog

    I actually kind of figured that this would have been asked a few times, but my search attempt wasn't all that successful. The only somewhat related topic was Script to Select File, but the script I found here only displayed server-side files since…

  • Delete Change Items in BOI

    Is it possible to do this? I've been able to populate the IM_DeleteChangeItems table using BOI, but I can't figure out how to actually apply the changes to the item codes using BOI.

    If it's not possible that's okay, but please let me know if that…

  • Script to find the Contact Code from the Confirm To in Sales Order

    Hi, I'm trying to write a script to find the Contact Code using the Confirm To in the Sales Order header so that I can populate some user defined fields in the contact code maintenance into the sales order header. I have this so far, but it's not finding…

  • Type mismatch


    I'm trying to convert numbers entered into a text field to an integer value.  I have tried:



    but nothing seems to work.  Any ideas?



  • Creating a simple script to restrict specific GL accounts from certain users

    Hi, I am trying to create a script that puts the focus back on the GL account field when specific GL accounts are selected by user. So, when a user enters a GL account with a UDF_RESTRICTED value of Y, then Sage will focus back on the GL account and not…

  • Using python with the BOI

    We have a python (3.10) application that we want to use to create a sales order in Sage 100.

    I have installed pywin32 so the python script can access win32/COM.

    This code works up to the point where I try to call a method on the SY_Session object:


  • How to use the "SO_PickingSheetPrinting" method "SelectOrder" to queue sales order picking sheets to be printed

    From a BOI script I would like to select individual orders so that a type "4" record will be added to "SO_SalesOrderPrint" table. The method "SelectOrder" calls for two separated string parameters: "hdrRec$" and "dtrRec$". This is confusing. Why would…

  • Using BOI to print Quote

    Looking to use the BOI to retrieve a quote as a PDF. Can see topics here about generating sales orders as PDF's, example:


  • Looping a table while batches enabled


    I want to loop through all my not-registered invoices.

    What I do (in general) is:

    dynamic obj = pvx.NewObject("AP_ManualCheck_bus", oSession);
    obj.nMoveFirst();   //To get to the first record 
    //Rest of code

    The problem is that I have…

  • 100E - Sage 100 - Object Interface Course


    I want to read and write data in sage100 database, so after some research I found out this course for reference.

    But just need to validate that is this course really guides on how to read and write back data to Sage100 database or not?

    This is the…

  • Sales Order Entry / Totals Tab / PaymentObj

    I believe the Deposit Payment Type on the Totals panel and other data reside in PaymentObj.  What table is associated with this object?  Where/how can I find the data?

  • Unable to drop object in event script

    I have a working event script tied to S/O detail that fires on post validation of quantity ordered.  The script automatically creates a BOM Production Entry for the item entered, updates the production entry and updates the GL DTR.  The problem I'm having…

  • GetResultSets pagination

    Is there a way to paginate the GetResultSets() function in boi? I'm thinking sort of like how in SQL, you can use OFFSET and LIMIT to divide the query results into multiple pages. Is there a way to do that with the GetResultSets() function?

  • Rebuild Sort Files using BOI?

    Has anyone been able to Rebuild Sort Files (and/or Key Files) using BOI? Last post on this topic from 12 years ago said no, but perhaps someone has figured it out since?

    I see the objects SY_Rebuild_bus in the Object Reference but am not certain if that…

  • Button Script to delete Sales order with cancel code

    Hello all,

    I wrote a script with the goal to delete sales orders with a specific condition. So I can delete sales orders just fine its just that when the orders are deleted the cancel reason code is not flowing to history it is staying blank. I am even…

  • Sage 100 BOI Script to Create Inventory Transactions

    I'm writing a BOI script to create Inventory Adjustment Transactions.  I want to use the next available entry number so I have the GetNextEntryNo(refNo$) function in my script.  What I can't figure out is what the "refNo$" needs to be.…

  • Sage 100 SQL - Use Script Tied to Button on Production Entry Header to Open UDT Screen and Return Data From UDT to Production Header

    Is it possible from the Production Header panel, via a script, either tied to a button click event or on one of the table events, to open an existing UDT (so that the user can see the UDT), then get a value from it and set a textbox on the Production…

  • Populate Object (e.g. BM Production Entry) and open UI

    I am looking for a way to use a script in Sage to create an entry, e.g. a Bill of Materials Production entry, and then open the UI for this entry to have the user complete it. I know how to open the UI for a specific program, and  I know that I can open…

  • User Defined Script - Problems Getting Child Handle

    I'm trying to accumulate the quantities of all the detail lines in an AR invoice, but only if the item is of a certain type.  I defined a UDF for that checkbox, and put it in the Item Maintenance screen.

    I would like the total to update whenever a user…

  • Creating PO via BOI Write Issue

    Hello All! I have an issue with creating a PO via BOI that I was hoping someone can help me with. We're using  Sage 100cloud Premium 2019 Version Here's my code:

    using (DispatchObject poObject = new DispatchObject(pvx.InvokeMethod("NewObject…

  • Paperless Office Email from AR Invoice History Printing Report through BOI


    I have an issue with automating invoice emails through Paperless from the AR Invoice History Printing report. The code below works fine in my test environment but fails (without an error) in the target environment.

    My test environment is v20…