cancel
Showing results for 
Search instead for 
Did you mean: 

Add employee using B1WS

Former Member
0 Kudos

Hi Team

I want to add EmployeesInfo using B1WS. By which service can I add employee details?

Regards

Shyam

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Eric/ Maik

Can you suggest how to fix this issue?

"Data 'EmployeeInfo' not found" when adding employee using B1WS (EmployeeInfoService.wsdl)


Regards

Shyam

Former Member
0 Kudos

Hi Development Team,

2 solutions:

  • You go to PL11 (at least),
  • You use plain DIS calls instead of B1WS.

Regards,

Eric

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Maik

Still I am getting "Data 'EmployeeInfo' not found" error.

I only used same parameter as you did.

and I am using version 9.0 PL 5.

Regards

Shyam

maik_delly
Active Contributor
0 Kudos

Hi Shyam,

I am sorry I don't have a PL 5 running and I can't reproduce your issue. My best guess is that is indeed PL related but I can't find anything in release notes. Maybe someone else can confirm.

regards,

Maik

Former Member
0 Kudos

Hi all,

From my tests (I tested PL5, 8, 9, 10, 11), Maik is Lucky: the service appeared in DIS with the PL11.

Regards,

Eric

maik_delly
Active Contributor
0 Kudos

Hi Shyam,

add following line to your ServiceList.xml from WSDL-Generator and generate the WSDLs :


<ServiceName object="EmployeesInfo" id="171">EmployeesInfoService</ServiceName>

Afterwards you will have an EmployeesInfoService.wsdl, which you can use.

regards,

Maik

Former Member
0 Kudos

Hi Maik

I have added the same and generate the WSDLs but in EmployeeInfoService.wsdl I did not find any method by which I can insert/ Add employee details using that service.

Please can you suggest how to insert Employee details using b1ws services?

Regards

Shyam

maik_delly
Active Contributor
0 Kudos

Hi,

just a quick example :


svcEmployee.EmployeesInfoService myEmpSvc = new svcEmployee.EmployeesInfoService();

svcEmployee.EmployeeInfo myNewEmployee = new svcEmployee.EmployeeInfo();

svcEmployee.MsgHeader oHeader = new svcEmployee.MsgHeader();

oHeader.SessionID = "D509E0E0-7582-4CA1-8B13-195C81E69119";

oHeader.ServiceName = svcEmployee.MsgHeaderServiceName.EmployeesInfoService;

oHeader.ServiceNameSpecified = true;

myEmpSvc.MsgHeaderValue = oHeader;

myNewEmployee.FirstName = "Firstname";

myNewEmployee.LastName = "Lastname";

myEmpSvc.Add(myNewEmployee);

regards,

Maik

Former Member
0 Kudos

Hi Maik

I did the same way but still did not get any add method in EmployeeInfoService and also not find MsgHeaderValue, For you r reference I am attaching that EmployeeInfoService.wsdl file, can you check that, Why those methods are not coming in that wsdl if possible can you email me your generated EmployeeInfoService.wsdl file?

Step to generate EmployeeInfoService.wsdl

Run B1WS 1.2 Setup for B1 9.0 and B1H 9.0

then add <ServiceName object="EmployeesInfo" id="171">EmployeesInfoService</ServiceName> in serviceList.xml

Which is in SAP installation folder C:\Program Files\SAP\SAP Business One Web Services\WsdlServicesGenerator

then click on WsdlServicesGenerator.exe and it generate wsdl/ xml file in folders

then copy EmployeeInforService.wsdl to B1WS -webreference folder

then added that wsdl file in my application and still did not find any method (Add/ Update) name  or property MsgHeaderValue.


Please rename file type extension with wsdl.

Can you check and suggest where is an issue? if possible send me employeeInfoService.wsdl file?

maik_delly
Active Contributor
0 Kudos

Hi,

you are doing everything correct, but your WSDL is not.

I don't know why ( maybe PL related - i am using PL 12 ) but I attached my WSDL.

regards,

Maik

Former Member
0 Kudos

Hi Maik

Now I am able to get all methods and when I am trying to add employee details using service.

It is throwing an error like

Data 'EmployeeInfo' not found, For your reference I am adding my code how I am doing this.

Please can you review it?

Regards

Shyam

maik_delly
Active Contributor
0 Kudos

Hi Shyam,

I reduced your code to a minimum and for me it is working.


private void AddEmployeeInfo()

{

    String SessionID = LoginLogout.Login();

    if (SessionID.StartsWith("Error"))

    {

        return;

    }

    try

    {

        EmployeesInfoService.EmployeeInfo employeeDto = new EmployeesInfoService.EmployeeInfo();

        employeeDto.FirstName = "firstname";

        employeeDto.LastName = "lastname";

        EmployeesInfoService.EmployeesInfoService myEmpService = new EmployeesInfoService.EmployeesInfoService();

        EmployeesInfoService.MsgHeader partnersHeader = new EmployeesInfoService.MsgHeader();

        partnersHeader.SessionID = SessionID;

        partnersHeader.ServiceName = EmployeesInfoService.MsgHeaderServiceName.EmployeesInfoService;

        partnersHeader.ServiceNameSpecified = true;

        myEmpService.MsgHeaderValue = partnersHeader;

        EmployeesInfoService.EmployeeInfoParams outputParam = new EmployeesInfoService.EmployeeInfoParams();

        outputParam = myEmpService.Add(employeeDto);

        MessageBox.Show("Done : " + outputParam.EmployeeID.ToString());

    }

    catch (Exception ex)

    {

        MessageBox.Show("Error : " + ex.Message);

    }

}

Is this running on your site ? Which PL are working with '?

regards,

Maik