Skip to content
Snippets Groups Projects
Commit 406d81be authored by Benjamin Ulrich's avatar Benjamin Ulrich :speech_balloon:
Browse files

Merge branch 'sales_pn_1081118_Offer_entity_onDBInser_asysbinary' into '2021.1'

[Projekt: xRM-Sales][TicketNr.: 1081118][Offer_entity onDBInsert select ASYS_BINARIES.BINDATA]

See merge request xrm/basic!962
parents b773b478 5d1cb133
No related branches found
No related tags found
No related merge requests found
......@@ -18,8 +18,6 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
if (vars.exists("$param.OfferOriginal_Id_param") && vars.get("$param.OfferOriginal_Id_param"))
OfferUtils.copyOfferItems(vars.getString("$param.OfferOriginal_Id_param"), offerId, discount);
var binaryColumns;
var binaries;
var activityId = vars.get("$param.ActivityId_param");
if (activityId)
{
......@@ -30,30 +28,14 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
"OBJECT_TYPE": ContextUtils.getCurrentContextId(),
"OBJECT_ROWID": offerId
}, "ACTIVITYLINK", "ACTIVITYLINKID");
binaryColumns = "BINDATA, FILENAME, DESCRIPTION, KEYWORD";
binaries = newSelect(binaryColumns, SqlUtils.getBinariesAlias())
.from("ASYS_BINARIES")
.where("ASYS_BINARIES.ROW_ID", activityId)
.table()
for (i = 0; i < binaries.length; i++)
{
SingleBinaryUtils.insert("OFFER", "DOCUMENT", offerId, binaries[i][0], binaries[i][1], binaries[i][2], binaries[i][3], SqlUtils.getBinariesAlias())
}
BinaryUtils.copyBinaries("ACTIVITY", activityId, "OFFER", offerId, "DOCUMENT");
}
var taskId = vars.get("$param.TaskId_param");
if (taskId)
{
binaryColumns = "BINDATA, FILENAME, DESCRIPTION, KEYWORD";
binaries = newSelect(binaryColumns, SqlUtils.getBinariesAlias())
.from("ASYS_BINARIES")
.where("ASYS_BINARIES.ROW_ID", taskId)
.table()
for (i = 0; i < binaries.length; i++)
{
SingleBinaryUtils.insert("OFFER", "DOCUMENT", taskId, binaries[i][0], binaries[i][1], binaries[i][2], binaries[i][3], SqlUtils.getBinariesAlias())
}
BinaryUtils.copyBinaries("TASK", taskId, "OFFER", offerId, "DOCUMENT");
}
}
WorkflowSignalSender.inserted();
\ No newline at end of file
WorkflowSignalSender.inserted();
......@@ -3,6 +3,51 @@ import("system.vars");
import("system.db");
import("Sql_lib");
/**
* A static utility class for binarys using database binary functions.
* It provides methods to handle multiple binary data.<br>
* <p>
* <b><u>Do not create an instance of this!</u></b>
* @class
*/
function BinaryUtils() {}
/**
* Copies the binaries
*
* @param {String} pSourceAssignmentTable <p>
* The source table from which the binary data will fetched.<br>
* (e.g.: ASYS_BINARIES).<br>
* @param {String} pSourceAssignmentRowId <p>
* The source row id.<br>
* (e.g.: UUID of the record)<br>
* @param {String} pTargetAssignmentTable <p>
* The target table from which the binary data will fetched.<br>
* (e.g.: ASYS_BINARIES).<br>
* @param {String} pTargetAssignmentRowId <p>
* The target row id.<br>
* (e.g.: UUID of the record)<br>
* @param {String} pAssignmentName <p>
* The name of the assignment/container name.<br>
* (e.g.: DOCUMENT)<br>
* @param {String} pAlias=SqlUtils.getBinariesAlias() <p>
* The database alias.<br>
* (e.g.: _____SYSTEMALIAS)
*/
BinaryUtils.copyBinaries = function(pSourceAssignmentTable, pSourceAssignmentRowId, pTargetAssignmentTable, pTargetAssignmentRowId, pAssignmentName, pAlias)
{
pAlias = pAlias || SqlUtils.getBinariesAlias();
var binMetadata = db.getBinaryMetadata(pSourceAssignmentTable, pAssignmentName, pSourceAssignmentRowId, false, pAlias);
var binContents = db.getBinaryContents(binMetadata.map(function(curr){return curr.id}), pAlias);
for(var i = 0; i < binMetadata.length; i++)
{
db.insertBinary(
pTargetAssignmentTable, pAssignmentName, pTargetAssignmentRowId, "", binContents[i],
binMetadata[i].filename, binMetadata[i].description, binMetadata[i].keyword, pAlias
);
}
}
/**
* A static utility class for binarys using database binary functions.
* It provides methods to ensure that only one binary for a AssignmentTable, AssignmentName and AssignmentRowId exist.<br>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment