cancel
Showing results for 
Search instead for 
Did you mean: 

diserver vs diapi web app

Former Member
0 Kudos

I am developing a web app which will be used with a barcode scanner in a warehouse. This app will potentially be used by no more than 5 people at any given time.

I am in the beginning stages of the app and for simplicity I have been using the diapi and not the deserver for this. Basically a user logs in to the diapi via a login and page and then that instance of the diapi is stored in the session (this is asp.ent MVC website). This actually works very well.

My question is this:

are there any advantageous to using the diserver over the dipapi in the instance? I find sometimes that there are certain objects that are missing from the diserver which are present in the diapi, most notably the pick list object.

I seems to me that the diapi would be faster than B1WS which would have the overhead of soap in order to make calls where this does not. At any rate I just wondered if any one could give me a specific reason why this would not work, before I get to far on this.

Accepted Solutions (1)

Accepted Solutions (1)

maik_delly
Active Contributor
0 Kudos

Hi Thomas,

in addition to Edy : DI API wouldn't work reliable in this environment.

I have developed several DIS warehouse apps for mobile handhelds. I also tried DI API and up to a specific point it works - but it is simply not designed for that scenario.

I ran a lot of tests DI API vs DI Server and my findings are that DI Server is significant faster - but of course the advantages are only seen when doing a lot of transactions.

PickList Object ( as every DI API object ) is available through DIS and B1WS. You have to add


<ServiceName object="PickLists" id="156">PickListsService</ServiceName>

in your ServiceList.xml from WsdlServicesGenerator.

regards,

Maik

Former Member
0 Kudos

Maik,

Thanks for the advice. On another related subject do you have any advice on what specific handhelds to use. In the past I have used Motorola devices running windows ce and that works for basic function. Lately though I have wanted something prettier and have been looking a barcode sleds for Iphones. Do you have an experience with these sled type devices?

maik_delly
Active Contributor
0 Kudos

Hi Thomas,

I don't have any experiences with sleds, but they look very good.

In my opinion they are not really suitable fo warehouses ( robust, long lasting battery, one hand usage, shock resistent ).

regards,

Maik

Former Member
0 Kudos

Just by way of completing this thread I would like to say:

I have been working with a sled for the past few days using in iphone 5. The sled itself is rugged by I have my fears about whether the Iphone screen could make it through a fall. The advantageous of this set up are tremendous when compared to the windows ce devices. Here I am creating an MVC web site which is access through the device, the upgrade time for software is not existent and development time is cut in half.

If a person were in a situation were they needed to make an app such as the one I spoke of, I think this set up at least deserves a look.

maik_delly
Active Contributor
0 Kudos

Hi Thomas,

I am doing the same with Windows CE devices. I am running a webserver hosting a website which communicates with a webservice.   This ws interacts with SBO via SQL / DI Server .

The website can be accessed by any device ( CSS rules ) and when it is AJAX driven it is behaving like a native app. Only downside with Windows CE is IE compatibilty.

regards,

Maik

Former Member
0 Kudos

Yes the compatibility issues are exactly why I want to move away from CE. CE works fine it is just you are limited with web apps to a very boring interface.

You are definitely right though the DI is way better for this APP.

Former Member
0 Kudos

Maik,

Do you no if it is possible to use B1WS for stock transfer request? I see we can do draft stock transfers but it doesn't allocate the inventory as a transfer request does.

maik_delly
Active Contributor
0 Kudos

Hi Thomas,

I guess you are looking for StockTransferDraftService ?

regards,

Maik

Former Member
0 Kudos

No not transferdraftservice but a transferrequest document

1250000001 StockTransfer request object.

Former Member
0 Kudos

Nevermind, I thought I had tried this but I guess I had a typo

just made an entry in servicelist.xml

Actually I take that back it does not work. It shows in the servicelist when I run the generator but it does not actually generate a WSDL

Answers (2)

Answers (2)

Johan_H
Active Contributor
0 Kudos

Hi Thomas,

My two cents: we have been running our warehouse using a web application for the last 7 years, and it works like a charm.

Our "secret" is not to write anything to B1 from the web app. So no DI API, no DI Server. That has saved me a lot of trouble shooting, and development costs.

We use a PC - PDA - PC setup. A windows application using the DI API runs on both PC's, and our web app on PDAs, which uses direct sql to get data from B1, and writes only to its own little dedicated database. In short PC 1 copies open orders from B1 to the order picking db. The web app picks orders from that db. PC 2 writes deliveries to B1, based on data from the web app db.

Added advantages:

- Any device with a browser and some sort of bar code scanner can be used to pick orders.

- Your windows app can show much more data at a glance, and only the data that matters to the warehouse. This makes it much easier to direct your warehouse operations, than from a small PDA screen, or from the B1 client with its clunky GUI, and irrelevant data / visual elements.

So to answer your question, I recommend using neither DI API nor DI server in your web app.

About devices, I am not sure what an Iphone with a sled costs, but let's say 500 USD ? A rugged PDA with built-in bar code scanner can be obtained for about 800 USD.

Whichever you choose, you can count on the device being dropped, crushed under something, lost, or stolen, on average once every 6 months. Let's say the iphone survives 2 out of 3 events. That means you are buying 3 iphones over the course of 5 years = 1500 USD x the amount of iphones you deploy. A rugged PDA is not particularly popular with thieves, and it survives most drops and crushing events. So you will be buying maybe 0,25 devices over the course of 5 years = 200 USD.

Regards,

Johan

Former Member
0 Kudos

Here is something to consider about device cost. Iphones can be expensive but with subsidies from wireless vendors they can become much cheaper than any CE device.

As far as not using the DI, that is how we have been doing it with the CE devices. The issue is that when we use this app for pick list, the inventory never gets touched until we make it to delivery. The issue here is that we cannot get real counts at any given time. This is why we are trying to make things work in real time. So far the IPhone web app is working great using B1WS.

Johan_H
Active Contributor
0 Kudos

thomas mason wrote:

...The issue here is that we cannot get real counts at any given time...

Apparently we use the same setup, and we faced this same problem. For what it is worth, our solution is a "stock broker" table in the order picking database. At any pick, our web app writes the picked amount to this table, and then we include this picked amount in all queries that retrieve stock figures from B1. At the "delivery" PC we then decrease the amount in the stock broker table again.

Former Member
0 Kudos

Thanks Johan, I toyed with that idea as well. The only issue with that is that when a person goes to item master they do not see the correct amount. Queries could certainly give the same data, but in my case I would run the risk of two people seeing different inventory levels, which would not be good.

It really has a lot to do with my lack of faith in the abilities of certain people to interpret data.

Johan_H
Active Contributor
0 Kudos

thomas mason wrote:

...It really has a lot to do with my lack of faith in the abilities of certain people to interpret data.

Amen 

edy_simon
Active Contributor
0 Kudos

Hi Thomas,

Two problems with DIAPI.

1. It is a single thread object.

2. It leaks memory and handle.

the 2nd problem will get your W3WP killed by OS because of consuming to much memory.

And there is no way for us to handle and release this memory.

unless you decoupled the W3WP and the DIAPI

regards

edy

Former Member
0 Kudos

Hi Edy.

Is this memory leak already fixed in the last versions of the SAP DI API?

Any updates on this?

edy_simon
Active Contributor
0 Kudos

Hi Pieterjan,

I am currently having doubt on this issue, Is this really a memory leak, or is it just because we don't really know how to free up the DI API objects.

I haven't have time to test on this again.

The new SBO 9.2 offers a web browser access to the SBO Application, in order for our add-on to run, I think we will need some kind of web services.

If it is really what I think it is, then we need to really have a clean code that does not have memory leak.

I haven't look into this feature though.

Regards
Edy