Skip to main content
Skip table of contents

linkEntries

Versionshinweise

26.4

Code

GROOVY
void linkEntries(IContainer masterEntry, String relation, List<IContainer> entries)

Beschreibung

Verknüpft eine Liste von Datensätzen mit einem Hauptdatensatz für eine bestimmte Relation.
Es lassen sich Relationsattribute setzen und speichern, indem diese im abhängigen Datensatz gesetzt werden und dieser anschließend mit dem Hauptdatensatz verknüpft wird.

Parameter

  • masterEntry - Ein Hauptdatensatz, mit dem die Liste von Datensätzen verknüpft werden soll.

  • relation - Der interne Name der Relation, z.B. "rCuAc".

  • entries - Eine Liste von Datensätzen, die mit dem Hauptdatensatz verknüpft werden sollen.

Rückgabe

void

Beispiele

GROOVY
 //linking two activities with the rAcAc relation
IScriptWorkSpace workSpace = WorkSpaceScriptUtils.createEmptyWorkSpace("Activity");
IContainer entry1 = WorkSpaceScriptUtils.createDefaultEntry("Activity");
entry1 = WorkSpaceScriptUtils.createEntry(workSpace, 0, entry1);
IContainer entry2 = WorkSpaceScriptUtils.createDefaultEntry("Activity");
entry2 = WorkSpaceScriptUtils.createEntry(workSpace, 1, entry2);
List list = new ArrayList();
list.add(entry2);
WorkSpaceScriptUtils.linkEntries(entry1, "rAcAc", list);

//example with setting fields, that are delegated to the relation
IScriptWorkSpace cuWorkspace = WorkSpaceScriptUtils.createEmptyWorkSpace("Customer");
IContainer customer = WorkSpaceScriptUtils.createDefaultEntry("Customer");
customer = WorkSpaceScriptUtils.createEntry(cuWorkspace, 0, customer);
String customerPk = WorkSpaceScriptUtils.getPk(customer);

IScriptWorkSpace pjWorkspace = WorkSpaceScriptUtils.createEmptyWorkSpace("Project");
IContainer project = WorkSpaceScriptUtils.createDefaultEntry("Project");
project = WorkSpaceScriptUtils.createEntry(pjWorkspace, 0, project);
String projectPk = WorkSpaceScriptUtils.getPk(project);
//---------------------------------------------
//an empty container with just the pk is enough
IContainer customerEmpty = WorkSpaceScriptUtils.createEmptyEntry("Customer", customerPk);
IContainer projectEmpty = WorkSpaceScriptUtils.createEmptyEntry("Project", projectPk);
ILookup projectRoleClient = LookupUtils.toLookup("C0PRJ_ROLE_AUFTRAGGEBER");
WorkSpaceScriptUtils.setValue(projectEmpty, "ProjectRoleKey.Project", projectRoleClient);

WorkSpaceScriptUtils.linkEntries(customerEmpty, "rCuPj", projectEmpty);

IScriptWorkSpace rCuPj = WorkSpaceScriptUtils.getDependentWorkSpace(customerPk, "Customer", "rCuPj", projectPk);

IContainer dependentProject = WorkSpaceScriptUtils.getEntry(rCuPj, 0);
Assertions.assertEquals(projectRoleClient, WorkSpaceScriptUtils.getValue(dependentProject, "ProjectRoleKey.Project"),
"field that is delegated to the relation is readable when read from the depentent workspace.");

IScriptWorkSpace projectWs = WorkSpaceScriptUtils.searchEntry(projectPk, "Project");
IContainer notDependentProject = WorkSpaceScriptUtils.getEntry(projectWs, 0);
Assertions.assertNull(WorkSpaceScriptUtils.getValue(notDependentProject, "ProjectRoleKey.Project"),
"field that is delegated to the relation is empty when read from just the IContainer.");

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.