Change Password Example
This example is a change password function:
local procedure ChangePassword(var Session: Record "APD Session Hgd")
var
CurrentPassword: Text;
NewPassword1: Text;
NewPassword2: Text;
User: Record "APD User Hgd";
PasswordError: Label 'Wrong information entered, please try again.';
begin
CurrentPassword := APD.GetParameter(Session, 'current');
NewPassword1 := APD.GetParameter(Session, 'newpassword1');
NewPassword2 := APD.GetParameter(Session, 'newpassword2');
IF (LOWERCASE(CurrentPassword) = LOWERCASE(Session.Password)) AND
(NewPassword1 <> '') AND
(LOWERCASE(NewPassword1) = LOWERCASE(NewPassword2)) THEN BEGIN
User.GET(Session.UserID);
User.VALIDATE(Password, LOWERCASE(NewPassword1));
User.MODIFY;
APD.HttpHeader(0, APDPath, '', '', '');
END ELSE
APD.HttpHeader(0, APDPath + '?action=CHANGE.PASSWORD&_ERRORMESSAGE=' + PasswordError, '', '', '');
end;
Upload a file into Business Central
This example shows how to upload a binary into APD, this example comes from a project portal where user can upload documents to a task:
local procedure TaskUpload(var Session: Record "APD Session Hgd")
var
JobTask: Record "Job Task";
OK: Boolean;
OutS: OutStream;
InS: InStream;
Ref: RecordRef;
Setup: Record "Web Setup";
Log: Record "Job Task History";
begin
Setup.GET;
JobTask.GET(APD.GetParameter(Session, '1001:1'), APD.GetParameter(Session, '1001:2'));
VerifyJobAgainstUser(JobTask."Job No.", Session);
Session.CALCFIELDS("Uploaded File");
Session."Uploaded File".CREATEINSTREAM(InS);
Log.INIT;
Log."Job No." := JobTask."Job No.";
Log."Job Task No." := JobTask."Job Task No.";
Log.Log := APD.GetLocalDateTime(); // CURRENTDATETIME;
Log.INSERT(TRUE);
Log.Status := Setup."Status for Upload";
Log.UploadData.CREATEOUTSTREAM(OutS);
COPYSTREAM(OutS, InS);
Log.Filename := Session."Uploaded File Name";
Log."Web User" := Session.UserID;
Log.MODIFY(TRUE);
APD.HttpHeader(0, APDPath + '?action=TASK&1001:1=' + JobTask."Job No." +
'&1001:2=' + JobTask."Job Task No.", '', '', '');
end;
Here is the template stub to go together with the upload code, see the multipart/form-data encoding of the form: