Here is the solution for Business Central
local procedure CreateDimensions4(DimensionCode: Code[20]; DimensionSetValue: Code[20]; DimensionSetID: Integer): Integer
var
DimSetEntry1: Record "Dimension Set Entry";
recDimSet: Record "Dimension Set Entry" temporary;
DimSetEntry: Record "Dimension Set Entry";
DM: Codeunit DimensionManagement;
dimSetID: Integer;
dimSetIDn: Integer;
TryV: Integer;
begin
dimSetID := 0;
recDimSet.RESET();
IF recDimSet.FINDSET() THEN
recDimSet.DELETEALL();
recDimSet.RESET();
recDimSet.INIT();
recDimSet.VALIDATE(recDimSet."Dimension Code", DimensionCode);
recDimSet.VALIDATE(recDimSet."Dimension Value Code", DimensionSetValue);
recDimSet.INSERT();
if DimensionSetID = 0 then begin
dimSetIDn := 0;
dimSetIDn := DM.GetDimensionSetID(recDimSet);
end
else
dimSetIDn := DimensionSetID;
DimSetEntry1.RESET();
// DimSetEntry1.SETFILTER(DimSetEntry1."Dimension Set ID", '%1', dimSetIDn);
IF DimSetEntry1.Get(dimSetIDn, recDimSet."Dimension Code") THEN
TryV := 1
ELSE
IF recDimSet.FINDFIRST() THEN
REPEAT
DimSetEntry.RESET();
DimSetEntry.INIT();
DimSetEntry.VALIDATE(DimSetEntry."Dimension Set ID", dimSetIDn);
DimSetEntry.VALIDATE(DimSetEntry."Dimension Code", recDimSet."Dimension Code");
DimSetEntry.VALIDATE(DimSetEntry."Dimension Value Code", recDimSet."Dimension Value Code");
DimSetEntry.INSERT();
UNTIL recDimSet.NEXT() = 0;
exit(dimSetIDn)
end;