We have a self made Sales Tool which is developed to use SAP Business One System through the DI Server. We have like 40 employees which are logged in through remote desktop to the same machine with their own users. All users have a desktop shortcut to our salestool. Right now we can't use the DIAPI because SAP is licensed per CPU. So if all the employees (salespersons) log in through remote desktop to one and the same machine there would be a license problem.
Our solution is pretty dirty in my honest opinion. We developed a cmd tool which runs on a server in our house. This cmd tool is listening to the clients and receiving XML from the clients. After it have received some xml, it sends the XML to the DI Server and waits for the response and sending back the result to the client. We have huge performance issues with that architecture and like i said before, it's a very dirty solution.
Now i am up to find another solution for the communication between the clients and SAP B1. I am thinking of using either WCF or WebAPI (maybe any suggestions how i can decide which one would be better for me?)
So when i decided to build either a WCF or WebAPI solution how can i resolve the license problem with a clean architecture? I mean we have for all our employees (users) SAP B1 licenses. Each User have his username and password saved in LDAP. So i can read the users and passwords from LDAP to log them with their correct license into SAP.
I want to have all my business logic in the WCF/WebAPI. Right now the complete business logic is in the Sales Tool.
So my thinking is like this: I have my WCF/WebAPI Service with the business logic in it. A user starts the tool (logging in through remote desktop). LDAP gets the users SAP username and Password and logs in SAP through the Service. After the user is logged in, he can work with the tool while multiple users can work parallel. i think the transaction logic for multiple users is given by the DIServer/DIAPI i don't even know which of this i have to use. i hope someone can tell me which i need for my solution
So if anyone have any suggestions about a good architecture / a good solution for my problem would be great.
thanks so for