Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics GP forum
Answered

Insufficient authorization to perform this action - GP web services from ASP.Net

Posted on by Microsoft Employee

I'm trying to create an ASP.Net web service that will call the GP web services but when calling the CreateReceivablesInvoice service it is failing with the error "Insufficient authorization to perform this action"

I am connecting to the service as a user that is setup in the Dynamics Security Console as a superuser and have proved that all works correctly when calling the CreateReceivablesInvoice service from a standard Windows Forms app. The same code, however, doesn't work from the ASP.Net web app.

The code is as follows and it fails on the last line:

CompanyKey companyKey;
Context context;
ReceivablesDocumentKey invoiceKey;
CustomerKey customerKey;
MoneyAmount invoiceAmount;
ReceivablesInvoice receivablesInvoice;
Policy receivablesInvoiceCreatePolicy;

// Create an instance of the service
GPService.DynamicsGPClient wsDynamicsGP = new GPService.DynamicsGPClient();

wsDynamicsGP.ClientCredentials.UserName.UserName = "domain\\username";
wsDynamicsGP.ClientCredentials.UserName.Password = "password";

// Create a context with which to call the service
context = new Context();

// Specify which company to use (sample company)
companyKey = new CompanyKey();
companyKey.Id = (1);

// Set up the context object
context.OrganizationKey = (OrganizationKey)companyKey;

// Create the document key to uniquely identify the receivables invoice
invoiceKey = new ReceivablesDocumentKey();
invoiceKey.Id = invoice.InvoiceNumber;

// Create a customer key object to specify the customer
customerKey = new CustomerKey();
customerKey.Id = invoice.CustomerNumber;

// Create a money amount object to specify the invoice amount
invoiceAmount = new MoneyAmount();
invoiceAmount.Currency = "STG";
invoiceAmount.Value = Convert.ToDecimal(invoice.InvoiceValue);

// Create the receivables invoice object
receivablesInvoice = new ReceivablesInvoice();

// Populate the receivables invoice object's required properties
receivablesInvoice.Key = invoiceKey;
receivablesInvoice.CustomerKey = customerKey;
receivablesInvoice.SalesAmount = invoiceAmount;

// Get the create policy for receivables invoices
receivablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateReceivablesInvoice", context);

// Create the receivables invoice
wsDynamicsGP.CreateReceivablesInvoice(receivablesInvoice, context, receivablesInvoiceCreatePolicy);


I've seen the following post: https://community.dynamics.com/gp/b/dynamicsthoughts/archive/2014/08/08/how-to-solve-the-error-insufficient-authorization-to-perform-this-action-in-web-services-for-microsoft-dynamics-gp

but I don't see GPWebServicesAppPool in the list of application pools in IIS and I also can't find the web.config file referred to in that post.

  • Verified answer
    Community Member Profile Picture
    Community Member Microsoft Employee on at
    RE: Insufficient authorization to perform this action - GP web services from ASP.Net

    Please ignore this question. When testing this I had the customer number set incorrectly to a non-existent customer which I think explains the error. After correcting that, the code above does actually work, which is nice.

Helpful resources

Quick Links

Replay now available! Dynamics 365 Community Call (CRM Edition)

Catch up on the first D365 Community Call held on 7/10

Community Spotlight of the Month

Kudos to Saurav Dhyani!

Congratulations to the June Top 10 community leaders!

These stars go above and beyond . . .

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 288,584 Super User

#2
Martin Dráb Profile Picture

Martin Dráb 225,864 Super User

#3
nmaenpaa Profile Picture

nmaenpaa 101,148

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans