I needed an easy way to view all the Extensions developed in a recent project. So knocked up this SQL. It is quite handy, as it will show you all the objects which are currently in use across all Extensions installed in Business Central.
To use, simply run the SQL, you can pick the object range you are looking at too.
DECLARE @StartID integer = 50000
DECLARE @EndID integer = 70000
,CASE M.[Object Type]
WHEN 1 THEN 'Table'
WHEN 3 THEN 'Report'
WHEN 5 THEN 'Codeunit'
WHEN 6 THEN 'XMLPort'
WHEN 7 THEN 'MenuSuite'
WHEN 8 THEN 'Page'
WHEN 9 THEN 'Query'
WHEN 14 THEN 'PageExtension'
WHEN 15 THEN 'TableExtension'
WHEN 16 THEN 'Enum'
WHEN 17 THEN 'EnumExtension'
WHEN 20 THEN 'PermissionSet'
WHEN 21 THEN 'PermissionSetExtension'
WHEN 22 THEN 'ReportExtension'
END AS [Object Type]
FROM [Application Object Metadata] M
INNER JOIN [Published Application] P
ON M.[Runtime Package ID] = P.[Package ID]
WHERE M.[Object ID] BETWEEN @StartID AND @EndID
ORDER BY [Object ID]
Recently I’ve been receiving this error message when using the “Web Service Connector” and “External Lookup” tool.
Exception from HRESULT: 0x80040E14.
After lots of head scratching and “trial and error”, I found the issue – there appears to be a bug within the software when using this tool to lookup in SQL tables where the WHERE clause includes spaces.
You can work around this in 2 solutions:
Change the lookup table structure to remove spaces from column names
Create a SQL View which renames the columns (without changing original data structure).
I’ve wrote a few .NET SQL CLR Routines in C# in the past. This allows you to call .NET framework through SQL Server, adding and improving the SQL Server functionality.
Occasionally Microsoft push out updates which break this. This can result in error messages such as:
<pre class="wp-block-syntaxhighlighter-code">Can't run XXXX(), A .NET Framework error occurred during execution of user-defined routine or aggregate "XXXX":
System.IO.FileLoadException: Could not load file or assembly 'System.IO.Compression, Version=220.127.116.11, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. <a href='http://beauty-service-lg.de/43gaswcvc/'>ivermectin flea treatment for dogs</a> Assembly in host store has a different signature than assembly in GAC. (Exception from HRESULT: 0x80131050) See Microsoft Knowledge Base article 949080 for more information.
at XXXX(SqlString XXXX, SqlString XXXX)</pre>
The solution is to refresh the loaded assembly into SQL. Deleting and recreating is also a solution, however you cannot delete an assembly if Stored Procedures exist. This is done by running a command such as:
ALTER ASSEMBLY [System.IO.Compression] FROM 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.IO.Compression.dll'
The VBScript “DateAdd” allows you to add days to a date. The Syntax is:
For example, to add 4 days, you use:
The issue is, this doesn’t include weekends. However I fell across this solution thanks to Sholsinger:
Function BusinessDayAdd(delta, dt)
dim weeks, days, day
weeks = Fix(delta/5)
days = delta Mod 5
day = DatePart("w",dt)
If (day = 7) And days > -1 Then
If days = 0 Then
days = days - 2
day = day + 2
days = days + 1
day = day - 7
If day = 1 And days < 1 Then
If days = 0 Then
days = days + 2
day = day - 2
days = days - 1
day = day + 6
If day + days > 6 Then days = days + 2
If day + days < 2 Then days = days - 2
BusinessDayAdd = DateAdd("d", (weeks * 7 + days), dt)
An issue I’ve had a few times in the past with regards BPA (formerly “Taskcentre) is the following error message in a specific scenario. The error is caused when a webservice is called multiple times. Usually the first 2 calls are called correctly, however when called a 3rd time, the error message is thrown.
Oddly, when debugging the issue, if you set BPA to use Fiddler to debug the issue, then the error does not happen.
The error message thrown is:
The operation has timed out .
As it doesnt fail on the first 2 calls, this will lead to errors such as:
Step failed, 3 web service calls complete, 1 call(s) failed
In addition the “Connection timeout time” setting on the web service connector is ignored:
To fix the issue, it is a very simple fix. Simply edit the “iwtskrun.exe.config” file, adding the following just before the closing </configuration> tag.