'Codeunit "Temp Blob"' does not contain a definition for 'Blob'AL(AL0132)

Hi All,

I need to do some changes in standard report, 1305 - ‘Standard Sales - Order Conf.’. For that I converted this report from CAL to AL. But I am getting some errors regarding TempBlob. I am able to resolved few errors by Googling.

I am getting below error on PreDataItem:

’Codeunit “Temp Blob”’ does not contain a definition for 'Blob’AL(AL0132)

Previously TempBlobWorkDescription was record, I changed it to codeunit.

Piece of code is as below,
trigger OnPreDataItem();
begin
IF NOT ShowWorkDescription THEN
CurrReport.BREAK;
TempBlobWorkDescription.Blob := Header.“Work Description”;

end;

I used https://github.com/microsoft/ALAppExtensions/blob/master/BREAKINGCHANGES.md link to resolve my errors. But not getting anything for above error.
Could anyone suggest or help me how to resolve this error?

Thanks in advance.

Also getting second error :

Error 2:
Field ‘Archive Quotes and Orders’ is marked for removal. Reason: Replaced by new fields Archive Quotes and Archive OrdersAL(AL0432)
These fields belongs to table 311 - ‘Sales & Receivables Setup’.

I am trying according to message but getting error -
Operator ‘and’ cannot be applied to operands of type ‘Boolean’ and 'Option’AL(AL0175)
Because ‘Archive Quotes’ is Option type and ‘Archive Orders’ is of Boolean type.

Thanks in advance.

It is difficult to bring in any advice because you do not show your code. Everything with blobs have been removed and replaced and as stated on breaking changes the way to resolve the issue is to use CU 4100. You can search for a variable containing CU 4100 in base application - and find a workable example.

Yes you get that error as the original fields are marked for deletion because of functional changes in the base application - so you have to rewrite your code.

Hi Palle,

Thanks for reply.

I have given the standard piece of code where I am getting error,

below is standard code,

trigger OnPreDataItem();
begin
IF NOT ShowWorkDescription THEN
CurrReport.BREAK;
TempBlobWorkDescription.Blob := Header.“Work Description”;

end;

Ahh, not quite… There must be more to it than just 5 lines of code.

What is TempBlobWorkDescription (Object id)

The Header.“Wotk Description” is have you calculated the value of that field beforehand?

On Error related trigger only given three line code is written. This report is standard report - ‘Standard Sales - Order Conf.’. Till now I do not write any code, I am first resolving the errors.

Sorry, I am not getting which code you are expecting. Below is the complete AL converted code.

report 50138 “Sales - Order Conf.”
{
//Report 1305 extension
// version NAVW111.00.00.21836

RDLCLayout = ‘Standard Sales - Order Conf…rdlc’;

Caption = ‘Sales - Confirmation’;
DefaultLayout = Word;
PreviewMode = PrintLayout;
WordMergeDataItem = Header;

dataset
{
dataitem(Header; “Sales Header”)
{
DataItemTableView = SORTING(“Document Type”, “No.”)
WHERE(“Document Type” = CONST(Order));
RequestFilterFields = “No.”, “Sell-to Customer No.”, “No. Printed”;
//ReqFilterHeading = ‘Sales Order’;
column(CompanyAddress1; CompanyAddr[1])
{
}
column(CompanyAddress2; CompanyAddr[2])
{
}
column(CompanyAddress3; CompanyAddr[3])
{
}
column(CompanyAddress4; CompanyAddr[4])
{
}
column(CompanyAddress5; CompanyAddr[5])
{
}
column(CompanyAddress6; CompanyAddr[6])
{
}
column(CompanyHomePage; CompanyInfo.“Home Page”)
{
}
column(CompanyEMail; CompanyInfo.“E-Mail”)
{
}
column(CompanyPicture; CompanyInfo.Picture)
{
}
column(CompanyPhoneNo; CompanyInfo.“Phone No.”)
{
}
column(CompanyPhoneNo_Lbl; CompanyInfoPhoneNoLbl)
{
}
column(CompanyGiroNo; CompanyInfo.“Giro No.”)
{
}
column(CompanyGiroNo_Lbl; CompanyInfoGiroNoLbl)
{
}
column(CompanyBankName; CompanyInfo.“Bank Name”)
{
}
column(CompanyBankName_Lbl; CompanyInfoBankNameLbl)
{
}
column(CompanyBankBranchNo; CompanyInfo.“Bank Branch No.”)
{
}
column(CompanyBankBranchNo_Lbl; CompanyInfo.FIELDCAPTION(“Bank Branch No.”))
{
}

column(CompanyBankAccountNo; CompanyInfo.“Bank Account No.”)
{
}
column(CompanyBankAccountNo_Lbl; CompanyInfoBankAccNoLbl)
{
}
column(CompanyIBAN; CompanyInfo.IBAN)
{
}
column(CompanyIBAN_Lbl; CompanyInfo.FIELDCAPTION(IBAN))
{
}
column(CompanySWIFT; CompanyInfo.“SWIFT Code”)
{
}
column(CompanySWIFT_Lbl; CompanyInfo.FIELDCAPTION(“SWIFT Code”))
{
}
column(CompanyLogoPosition; CompanyLogoPosition)
{
}
column(CompanyRegistrationNumber; CompanyInfo.GetRegistrationNumber)
{
}
column(CompanyRegistrationNumber_Lbl; CompanyInfo.GetRegistrationNumberLbl)
{
}
column(CompanyVATRegNo; CompanyInfo.GetVATRegistrationNumber)
{
}
column(CompanyVATRegNo_Lbl; CompanyInfo.GetVATRegistrationNumberLbl)
{
}
column(CompanyVATRegistrationNo; CompanyInfo.GetVATRegistrationNumber)
{
}
column(CompanyVATRegistrationNo_Lbl; CompanyInfo.GetVATRegistrationNumberLbl)
{
}
column(CompanyLegalOffice; CompanyInfo.GetLegalOffice)
{
}
column(CompanyLegalOffice_Lbl; CompanyInfo.GetLegalOfficeLbl)
{
}
column(CompanyCustomGiro; CompanyInfo.GetCustomGiro)
{
}
column(CompanyCustomGiro_Lbl; CompanyInfo.GetCustomGiroLbl)
{
}
column(CompanyLegalStatement; GetLegalStatement)
{
}
column(CustomerAddress1; CustAddr[1])
{
}
column(CustomerAddress2; CustAddr[2])
{
}
column(CustomerAddress3; CustAddr[3])
{
}
column(CustomerAddress4; CustAddr[4])
{
}
column(CustomerAddress5; CustAddr[5])
{
}
column(CustomerAddress6; CustAddr[6])
{
}
column(CustomerAddress7; CustAddr[7])
{
}
column(CustomerAddress8; CustAddr[8])
{
}
column(CustomerPostalBarCode; FormatAddr.PostalBarCode(1))
{
}
column(YourReference; “External Document No.”)
{
}
column(YourReference_Lbl; FIELDCAPTION(“External Document No.”))
{
}
column(ShipmentMethodDescription; ShipmentMethod.Description)
{
}
column(ShipmentMethodDescription_Lbl; ShptMethodDescLbl)
{
}
column(Shipment_Lbl; ShipmentLbl)
{
}
column(ShipmentDate; FORMAT(“Shipment Date”, 0, 4))
{
}
column(ShipmentDate_Lbl; FIELDCAPTION(“Shipment Date”))
{
}
column(ShowShippingAddress; ShowShippingAddr)
{
}
column(ShipToAddress_Lbl; ShiptoAddrLbl)
{
}
column(ShipToAddress1; ShipToAddr[1])
{
}
column(ShipToAddress2; ShipToAddr[2])
{
}
column(ShipToAddress3; ShipToAddr[3])
{
}
column(ShipToAddress4; ShipToAddr[4])
{
}
column(ShipToAddress5; ShipToAddr[5])
{
}
column(ShipToAddress6; ShipToAddr[6])
{
}
column(ShipToAddress7; ShipToAddr[7])
{
}
column(ShipToAddress8; ShipToAddr[8])
{
}
column(PaymentTermsDescription; PaymentTerms.Description)
{
}
column(PaymentTermsDescription_Lbl; PaymentTermsDescLbl)
{
}
column(PaymentMethodDescription; PaymentMethod.Description)
{
}
column(PaymentMethodDescription_Lbl; PaymentMethodDescLbl)
{
}
column(DocumentCopyText; STRSUBSTNO(DocumentCaption, CopyText))
{
}
column(BilltoCustumerNo; “Bill-to Customer No.”)
{
}
column(BilltoCustomerNo_Lbl; FIELDCAPTION(“Bill-to Customer No.”))
{
}
column(DocumentDate; FORMAT(“Document Date”, 0, 4))
{
}
column(DocumentDate_Lbl; FIELDCAPTION(“Document Date”))
{
}
column(DueDate; FORMAT(“Due Date”, 0, 4))
{
}
column(DueDate_Lbl; FIELDCAPTION(&qu

What you have done is just replaced a table with at codeunit - and ofcourse that does not work - You still have to use a table with the blob field or take a closer look at the new codeunit and try to find out how to use it.

Upgrading a report from CAL to AL is not an easy task you not the the basics of AL have been understood. You are going to spend quite a lot of time on this, and I would strongly urge you to get someone else to solve your problem - either by sitting next to you and train you in AL-development (the changes) or let the person do all the work for you.

An other option would be to take a similar report in made with AL an copy that one a make the necessary changes on that copy.

Thanks for the reply Palle.

I agree. It’s a common misunderstanding that Business Central and AL is just an upgrade to Dynamics NAV and C/Side.

It’s a completely new way of developing. With NAV you could get around not really knowing how to program. With BC and AL you cannot!

And unless you have unlimited time (and already know many other programming languages than C/AL-C/Side), then it’s not something I would recommend for self-learning. Take a course and save yourself 100’s of hours.