• NetCore IIS scoped requests - Sage BOI - Cannot initiate multiple "SY_Session"

    HI All!

    We've put together a netcore API hosted on IIS for integrating with other tools we have.  All of our services on the API are scoped to give the requests their own instances and dependencies.  

    public static void AppServices(this IServiceCollection…

  • Read line items for a specific Invoice order without using a loop for every order.

     using (DispatchObject soObject = new DispatchObject(pvx.InvokeMethod("NewObject", "SO_Invoice_bus", oSS.GetObject())))              	 {
                        soObject.InvokeMethod("nSetKeyValue", new object[] { "InvoiceNo$", strRefNumber });

  • C# BOI example of creating an AR_Invoice with lines/details

    Is there anyone that can help with providing an example of creating an AR Invoice with lines/details in C# using either BOI or the nuget package www.nuget.org/.../

  • 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:


  • Sage100.ObjectManagement Interfaces .net Error when creating line entry

               var sessionLogon = new SessionLogon
                    CompanyCode = companyCode,
                    UserLogon = new NetworkCredential { UserName = userName, Password = password },
                    ModuleCode = ModuleNames.AccountsReceivable…

  • C# Create Sales Invoice From Sales Order; nSetKey() fails, sLastErrorMsg = "The [InvoiceNo] is invalid"

    I am on Sage 100c Standard 2016 (Version (yes, I know it is very old, and have plans to upgrade to a supported version).  I am attempting to create a program in C# that creates a sales invoice from a sales order.

    When my program executes the…

  • Cleanup() returns null

    I have a C# code that integrates with Sage 100 2021 Standard.

    After performing some action I want to clean and close the session I opened. for this I'm using:


    for some reason the nCleanup() returns null instead…

  • How to get business object names for table from Sage 100 BOI

    Is there a way to get a list of all the business object names for a table from the Sage 100 BOI? The SY_File object from the FileObj property on the session object seems to have methods to get a list of all the table names. Looking to expand on that where…

  • 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…

  • Access PO_ReceiptReturnMatRqByPO

    How can I access the table object PO_ReceiptReturnMatRqByPO? I need to delete a record from this table which refers to a ghost receipt and locks my PO.

    There isn't a file with _bus or _svc, so using NewObject returns "NewObject Error 90".…

  • Looking for a Microsoft Power App expert

    Looking for a Microsoft Power App expert who can develop a power app application that will fetch data from the SQL database in bulk and then send that data to Sage 100 ERP via Sage 100 API connector which is already installed. Data to be picked and sent…

  • How do I enter account Partner_Account Number on Sage University as the website does not have an option to update it?

    Hi All,

    I have placed an order for a course on Sage university but the system is not allowing me make the payment. Hence, we reached sales customer service via email and they reset the same and asked us to try and purchase the course again to redirect…

  • Best option for extracting data out of Sage 100 into Third-Party software

    We are looking at a Third-Party software called Master Control for our QA/QC documentation processing.  With that, we want to be able to extract data out of Sage 100c Advanced v2019.2 (upgrading to v2021 shortly) from Scanco's Manufacturing module, as…

  • Purging Records from UDT used as Lookup Table on Sales Order Entry

    I have developed a UDT and using as a lookup table for UDF in Sales Order Entry.  Prior to updating the table with new look up values my script is:

    Do until oUDT.Eof = 1
         retVal = oUDT.GetValue("UDF_SHIP_VIA$",Via)
         if Via <> "" then…

  • 100E - Sage 100 - Object Interface Course Purchase Issue


    I purchased the above mentioned course on Sage university but I was not able to access the material as the payment was pending.

    Also, I got a auto mail from sage informing that one of their sales person will contact us for payment part, but I haven…

  • Sage BOI SO Invoice non inventory item erroring out (invalid)

    Hi all, I'm in need of some guidance and help as I'm stuck in my process of inserting an SO Invoice using SO_Invoice_Bus that includes non inventory (like misc or charges item)

    these items are in sales order with 0 quantity and need to be in the…

  • 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…

  • Read & Write data in Sage100 using Business Object Interface


    I am new to Sage100 and customer is using Sage100 advanced which comes with ProvideX ODBC driver which only allows to read data from Sage100.

    I did some research on the functionality to write back the data in Sage100 but was not able to find any supporting…

  • How to automatically create Work Ticket in Production Management from Sales Order using BOI

    I have built an order importer that automatically creates sales orders based off of an EDI file from our customers.  It works great.  We are currently upgrading Sage 100 to include Production Management Plus and I want to be able to add in the ability to…

  • A batch number is not set up when creating invoice using BOI

    Hi all, 

    I was searching around and was not able to find issue that would provide me a hint on the problem I'm currently facing and was hoping to request some help from the community.

    I'm getting the error of.. A batch number is not set up


  • Can't access lines of receipt of invoice

    I created a receipt of invoice, applied PO to it, changed some info- and in the end I called


    where record is the pvxDynamic representing PO_Receipt_bus. I know that after the write, I have a new receipt in Sage and it's valid


  • AP_OpenInvoice with balance 0


    I'm trying to write a code that gets all the invoices which were fully paid. My idea was to take all the invoice and remove all the open invoices from "AP_OpenInvoice".

    But, I see invoices in that tables that have 0 balance. So probsbly…

  • creating a receipt of invoice with BOI

    Hi, I'm trying to write a code to create a new invoice from PO

    1. set the key ReceiptType$
    2. set the key ReceiptNo$
    3. call setKey()
    4. set PurchaseOrderNo$
    5. set InvoiceNo$

    Now i want to add the lines of the po to the receipt. In addition, i want it to be multiple…

  • 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…