Iterate Over Iventory And Update Items  Topic is solved

Discussions relating to Jiwa 7 plugin development, and the Jiwa 7 API.

Iterate Over Iventory And Update Items

Postby SBarnes » Wed Oct 28, 2015 3:01 pm

Hi Guys

I need to logon to Jiwa from a .net application and Iterate Over the Inventory Items and update certain Properties namely for example AUX2/ Bar code if certain criteria are met, could you provide some sample code as to how to go about this?

It may also be necessary from the data from another SQL Database add an item if its not present if the part number is not present after the initial update above, could you provide a sample also of how to insert a new item from code?

Thanks
Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1696
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 191

Re: Iterate Over Iventory And Update Items  Topic is solved

Postby Mike.Sheen » Fri Oct 30, 2015 9:13 am

Hi Stuart,

This should do what you want for updating items:

Code: Select all
Imports JiwaFinancials.Jiwa.JiwaApplication
Imports JiwaFinancials.Jiwa.JiwaInventory
Imports System.Data.SqlClient

Public Class Test
    Private Sub BulkUpdate()
        Manager.Instance.Logon("SQLServerName", "DatabaseName", JiwaFinancials.Jiwa.JiwaODBC.database.AuthenticationModes.JiwaAuthentication, "Admin", "Password")

        With Manager.Instance.Database
            Dim SQLReader As SqlDataReader = Nothing
            Dim inventory As Inventory = Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of Inventory)(Nothing)
            Try

                Dim sql As String = "SELECT InventoryID FROM IN_Main ORDER BY PartNo"

                Using SQLCmd As SqlCommand = New SqlCommand(sql, .SQLConnection, .SQLTransaction)
                    SQLCmd.CommandTimeout = .DefaultCommandTimeout
                    SQLReader = SQLCmd.ExecuteReader()

                    Do While SQLReader.Read
                        Dim InventoryID As String = .Sanitise(SQLReader, "InventoryID").ToString
                        inventory.Read(InventoryID)
                        inventory.AUX2 = "Some Value"
                        inventory.Save()
                    Loop

                    SQLReader.Close()
                End Using

            Finally
                If Not SQLReader Is Nothing Then
                    SQLReader.Close()
                End If
            End Try
        End With

        Manager.Instance.LogOff()
    End Sub
End Class


And for creating an item:

Code: Select all
 Private Sub CreateItem()
        Manager.Instance.Logon("SQLServerName", "DatabaseName", JiwaFinancials.Jiwa.JiwaODBC.database.AuthenticationModes.JiwaAuthentication, "Admin", "Password")

        Dim inventory As Inventory = Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of Inventory)(Nothing)

        inventory.CreateNew()
        inventory.PartNo = "ABC"
        inventory.Description = "Test"
        inventory.DefaultPrice = 21
        inventory.Save()

        Manager.Instance.LogOff()
    End Sub
Mike Sheen
Chief Software Engineer
Jiwa Financials

If I do answer your question to your satisfaction, please mark it as the post solving the topic so others with the same issue can readily identify the solution
User avatar
Mike.Sheen
Overflow Error
Overflow Error
 
Posts: 2583
Joined: Tue Feb 12, 2008 11:12 am
Location: Perth, Republic of Western Australia
Topics Solved: 807

Re: Iterate Over Iventory And Update Items

Postby SBarnes » Mon Nov 02, 2015 12:57 pm

Hi Mike

Firstly thanks for the code it was enough to get me started, but I have run into a small glitch that I am hoping you can help me overcome, the code works perfectly in either a winforms application or a console application where simply thus far I can get it to iterate over the items and spit out a property for each each either to a list ox or the console respectively but if i use the same code in a web based project it stops at the first line

Manager.Instance.Logon("SERVERNAME", "JiwaDemo", JiwaFinancials.Jiwa.JiwaODBC.database.AuthenticationModes.JiwaAuthentication, "Admin", "password"); and the stack trace

System.NullReferenceException was unhandled by user code
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=JiwaApplication
StackTrace:
at JiwaFinancials.Jiwa.JiwaApplication.Manager.HandleApplicationManagerPluginExceptions()
at JiwaFinancials.Jiwa.JiwaApplication.Manager.Logon(String ServerName, String DatabaseName, AuthenticationModes AuthenticationMode, String JiwaUserName, String JiwaPassword)

which leads me to believe it is caused by the plugins trying to load, it there a way to progrmatically tell jiwa not to load the plugins or to do so in such a way that its not going to be a problem in a web project?

Thanks for any help
Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1696
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 191

Re: Iterate Over Iventory And Update Items

Postby Mike.Sheen » Mon Nov 02, 2015 2:03 pm

Hi Stuart,

I've used the Jiwa assemblies in web (MVC 5) projects before without issue (even published to an Azure web app - support.jiwa.com.au is exactly that - it uses the Jiwa assemblies). make sure the target platform is x86, 32 bit, and the .Net framework version matches your Jiwa version - from memory failure to do so causes the problem you are experiencing.

Mike
Mike Sheen
Chief Software Engineer
Jiwa Financials

If I do answer your question to your satisfaction, please mark it as the post solving the topic so others with the same issue can readily identify the solution
User avatar
Mike.Sheen
Overflow Error
Overflow Error
 
Posts: 2583
Joined: Tue Feb 12, 2008 11:12 am
Location: Perth, Republic of Western Australia
Topics Solved: 807

Re: Iterate Over Iventory And Update Items

Postby SBarnes » Mon Nov 02, 2015 2:51 pm

Hi Mike,

Thanks for the advice unfortunately this doesn't fix the problem, the version of Jiwa is 7.0.129.0 and the .net framework is 4.5.1 which I know to be correct as the win forms application would not compile until it was changed to 4.5.1 due to the jiwa dlls, the application is a visual studio 2013 update 5 project using mvc 5 and web api 2, the call is in a web api controller although the same problem happens from within an mvc controller as well, not that that should make a difference at any rate.

Any other suggestions would be appreciated.
Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1696
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 191

Re: Iterate Over Iventory And Update Items

Postby SBarnes » Mon Nov 02, 2015 3:35 pm

Hi Mike,

Ignore my last post, I just figured out the problem when I thought about it rather than just have the jiwa dlls that I am using i.e. odbc, application and inventory, when I added every dll with jiwa in its name from the program directory to the project the problem fixed itself obviously it is related to .net finding the necessary dlls for what is firing with the plugins at login under aps.net as opposed to a normal windows process.

Thanks for the help.
Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1696
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 191


Return to Technical and or Programming

Who is online

Users browsing this forum: No registered users and 2 guests