Skip to main content
Microsoft Dynamics GP forum
Answered

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

editSubscribe (0) ShareShare
ReportReport
Posted on by UG Leader

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.

Attachments
  • Verified answer
    Community Member Profile Picture
    Community Member UG Leader 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

New Blog Features Released!

Check out the new community blog features for viewers and authors…

Setting Up Knowledge Sources for Copilot…

Look at how configuring a comprehensive knowledge base is crucial…

Demystifying Copilot with Georg Glantschnig…

Industry experts answer burning questions directly from our amazing Community…

Leaderboard

#1
Andre Arnaud de Calavon Profile Picture

Andre Arnaud de Cal... 283,080 Super User

#2
Martin Dráb Profile Picture

Martin Dráb 222,601 Super User

#3
nmaenpaa Profile Picture

nmaenpaa 101,138

Featured topics

Product updates

Dynamics 365 release plans