Archives

 

Many of you know me personally, you know that I'm not a 'web site owner', but a full time Dynamics GP developer. The web site is really just where I put all my notes from 20+ years of doing this.

So, it is such an annoyance to get to work in the morning and see this email:

User:
Geo Location: Wilmington; DE; US; 19893
IP: 52.188.22.65
Time: 6/1/2020 2:22:44 AM
Source: System.Web
CONTENT_LENGTH:: 0
CONTENT_TYPE:: text/html; charset=utf-8
PATH_TRANSLATED:: C:\inetpub\wwwroot\DynDeveloper.com\ColumnNameSearch.aspx
QUERY_STRING:: ctl00_MainContent_RadGrid1ChangePage=38_100'A=0
REMOTE_ADDR:: 52.188.22.65
REMOTE_HOST:: 52.188.22.65
REMOTE_PORT:: 52141
REQUEST_METHOD:: GET
SCRIPT_NAME:: /ColumnNameSearch.aspx
URL:: /ColumnNameSearch.aspx
HTTP_CONNECTION:: Keep-Alive
HTTP_CONTENT_TYPE:: text/html; charset=utf-8
HTTP_ACCEPT:: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_REFERER:: http://dyndeveloper.com/ColumnNameSearch.aspx?ctl00_MainContent_RadGrid1ChangePage=38_100'A=0
HTTP_USER_AGENT:: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
URL: http://dyndeveloper.com/ColumnNameSearch.aspx?ctl00_MainContent_RadGrid1ChangePage=38_100'A=0

The irritating part is in red.

So, in the middle of the night, this person (from Wilmington, Delaware) decides to try a SQL injection attack on this web site. This is not the actual attack, it's a preliminary foray into the attack. They've formed a URL that has a single quote and some code after it.

Although I've never been victim, I've had to help clean up sites that were victim. I helped on guy, spent hours cleaning, and the next day it happened again. He didn't take the time to fix his code.

No point here... just annoyed.

If you happen to have a bot net, maybe you'll do a DOS on the IP above. (laughs) kidding. Don't do that.

K, I feel better now. Have a good day!

*** If you have a 'hack attempt' story, please leave it in the comment below.

Yesterday we had a forum post requesting almost the same thing, and I used the same logic to accomplish this task. 

When you print a SOP document, normally you get 'Standard' In the Report Destination dialog. If you have templates turned on, it defaults to template. 

The requirement is to change that so that it defaults to 'Template' only for Quote documents and defaults to 'Standard' for all other documents. The solution is below.

Usually, when I want to affect the appearance of an ASP.NET control, specifically a Telerik control, I'll trap the ItemDataBound event and get it there. 

But doing that involves a multi step process. I'm trying a new approach, changing it using my stored procedure and the aspx page. No code behind. 

The approach involves having a SQL field that specifies the color, and setting the FORECOLOR.

But...

This control will accept this

<telerik:RadButton  CssClass="Bold" ID="btnTakeoff" commandName="Takeoff" runat="server" Text='Takeoff' ForeColor='#FF0000' ></telerik:RadButton>

but not this

<telerik:RadButton  CssClass="Bold" ID="btnTakeoff" commandName="Takeoff" runat="server" Text='Takeoff' ForeColor='<%# Eval("buttoncolor") %>' ></telerik:RadButton>

It throws an invalid conversion error

Solution below

Hello,

Could someone please provide a sample of the xml for a successful createpayablesinvoice transaction with distributions in Microsoft GP web services.  I would be greatly appreciative.

Thanks.

Carl

Hi,

When using the vendor lookup form in VST I cannot get it to go to the closet value from my input.  I am using GP2018.  The lookup sample app does not work either.  All other lookups I have used work fine, i.e. items, buyers, locations etc...

After setting up the appropriate code in GPAddins I do this on the lookup button....

 

Microsoft.Dexterity.Applications.SmartListDictionary.VendorLookupForm vendorLookupForm = SmartList.Forms.VendorLookup;
GPAddIn.WPCreditorIDFromLookup = true;
vendorLookupForm.Open();
vendorLookupForm.VendorLookup.VendorId.Value = txtCreditorFrom.Text;
vendorLookupForm.VendorLookup.VendorSortBy.Value= 1;
vendorLookupForm.VendorLookup.VendorSortBy.RunValidate();

It does not seem to matter what is passed, it will go to the last vendor.

I have tried all the other options...

vendorLookupForm.VendorLookup.AsiLuFindString.Value = txtCreditorFrom.Text;
vendorLookupForm.VendorLookup.AsiLuFindString.RunValidate();

But this does not produce anything.

Any insight would be appreciated.

Thanks

 

I'm trying to help a friend that posted a sales order batch before transferring it to invoice.
I'm not sure what, if anything GP has done. 
If we need to fix this, how do we go about it?

Thank you in advance!

Hi, has anyone successfully launched GP, logged in and either executed Dex code or run a macro via a service or application and then logged out again?

Cheers

 

 

Hello Everyone,

Using Microsft Dynamics GP 2018 / eConnect 2018:

I am an intermediate programmer but have worked really hard to get to this level of understanding and I'm having trouble using the taRMApply Class in a C# .Net Application that imports data from a CSV.

There are no exceptions being caught because it appears I am serializing all the data correctly but when I go into GP to see the results, its applying more money than the value passed in the 'APPTOAMT' node.

Has anyone experienced this type of problem before?

Here is the xml doc being submitted to eConnect:

<?xml version="1.0" encoding="utf-8"?>
<eConnect xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RMApplyType>
    <eConnectProcessInfo xsi:nil="true" />
    <taRequesterTrxDisabler_Items xsi:nil="true" />
    <taAnalyticsDistribution_Items xsi:nil="true" />
    <taRMApply>
      <APTODCNM>100003</APTODCNM>
      <APFRDCNM>98699-GLCR</APFRDCNM>
      <APPTOAMT>100.00</APPTOAMT>
      <APFRDCTY>7</APFRDCTY>
      <APTODCTY>1</APTODCTY>
      <APPLYDATE>04/30/2020</APPLYDATE>
      <GLPOSTDT>04/30/2020</GLPOSTDT>
    </taRMApply>
  </RMApplyType>
</eConnect>

Any help would be greatly appreciated, I can post the whole code solution too if required for context.

 

 

Using the following query returns 0 (zero) records despite every IV41100 record having a value in the NOTEINDX column.  How can this be?  I ask because I would like to insert 50+ records via SSMS and don't know what values that I should be using (NULL values are not allowed).

SELECT
       ['Inventory Landed Cost'].NOTEINDX AS 'Inventory Landed Cost-Note Index'
      
,['Record Notes Master'].NOTEINDX AS 'Record Notes Master-Note Index'
FROM
       IV41100
AS ['Inventory Landed Cost']
INNER JOIN
       SY03900
AS ['Record Notes Master']
             
ON
                     ['Inventory Landed Cost']
.NOTEINDX = ['Record Notes Master'].NOTEINDX

 

Thank you,

James

Hi everyone,

I'm working on a .Net C# Application that is designed to create credit memos with distributions that to need to be applied to outstanding invoices each month.

At this point I'm having trouble with the distributions part because of Error # 1340: Account does not exist for Account Number String <ACTNUMST>

The issue I'm having is that the String I'm passing, "12000-00" is our Accounts Receivable GL and that is the default for this type of transaction so I know for a fact that it does exist. Here is what it looks like when I manually create a credit memo and open the distributions tab.

Since I had trouble trying to edit the empty GL, I elected to set CREATEDIST = 0; and just assign the GL's myself.

It even accepts account numbers that are designated as 'Inactive', but for some reason wont accept this highly used default GL#.

Here is the XML I'm feeding and I greatly appreciate any help or advice.

<?xml version="1.0" encoding="utf-8"?>
<eConnect xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RMTransactionType>
    <eConnectProcessInfo xsi:nil="true" />
    <taRequesterTrxDisabler_Items xsi:nil="true" />
    <taUpdateCreateCustomerRcd xsi:nil="true" />
    <taCreateCustomerAddress_Items xsi:nil="true" />
    <taRMCommissions_Items xsi:nil="true" />
    <taRMTransactionTaxInsert_Items xsi:nil="true" />
    <taRMDistribution_Items>
      <taRMDistribution>
        <RMDTYPAL>7</RMDTYPAL>
        <DOCNUMBR>100003-GLCR</DOCNUMBR>
        <CUSTNMBR>10500</CUSTNMBR>
        <DISTTYPE>19</DISTTYPE>
        <ACTNUMST>12004-02</ACTNUMST>
        <DEBITAMT>177.75</DEBITAMT>
      </taRMDistribution>
      <taRMDistribution>
        <RMDTYPAL>7</RMDTYPAL>
        <DOCNUMBR>100003-GLCR</DOCNUMBR>
        <CUSTNMBR>10500</CUSTNMBR>
        <DISTTYPE>3</DISTTYPE>
        <ACTNUMST>12000-00</ACTNUMST>
        <CRDTAMNT>177.75</CRDTAMNT>
      </taRMDistribution>
    </taRMDistribution_Items>
    <taAnalyticsDistribution_Items xsi:nil="true" />
    <taRMTransaction>
      <RMDTYPAL>7</RMDTYPAL>
      <DOCNUMBR>100003-GLCR</DOCNUMBR>
      <DOCDATE>04/30/2020</DOCDATE>
      <BACHNUMB>91+ CR</BACHNUMB>
      <CUSTNMBR>10500</CUSTNMBR>
      <DOCAMNT>177.75</DOCAMNT>
      <SLSAMNT>177.75</SLSAMNT>
      <DOCDESCR>DTS ON FILE DO SHORTS OVERS</DOCDESCR>
      <ADRSCODE>buckeye</ADRSCODE>
      <CREATEDIST>0</CREATEDIST>
    </taRMTransaction>
    <taMdaUpdate_Items xsi:nil="true" />
  </RMTransactionType>
</eConnect>

 

 

We have been working on updating an existing VS Tools C# customization.  We added some stored procedures to an existing custom dexterity dictionary but the new stored procedures are not showing up in the list when we try to create a trigger on one of those stored procedures.  We ran the DAG process on the dictionary after the changes were made, removed the old reference in the project and then re added the reference for the new DLL created by the DAG process.  When we are trying to set the trigger, the stored procedure is still not showing up in the list to select.  I am thinking somehow it is still loading the old list.  I looked for a refresh cache for intellisense but don't see anything.  I am using GP 2016 R2 and VS 2017.

Can anyone suggest what I can do to troubleshoot this issue?

Thanks,

Lonnie

Table Definition Quick Links
All Tables
SOP Tables
RM Tables
GL Tables
POP Tables
HR Tables
PM Tables
UPR Tables
IV Tables
Olympic Tables
3