Skip to main content
Skip table of contents

getDependentWorkSpace

Versionshinweise

12.1, 25.5

Code

GROOVY
IScriptWorkSpace WorkSpaceScriptUtils.getDependentWorkSpace(String pk, String masterEntity, String relation)

Beschreibung

Lädt zu dem gegebenen Primärschlüssel und Entitätsnamen abhängige Datensätze aus der gegebenen Relation als Workspace. Es werden maximal 10000 Datensätze geladen, außer im Server wurde die maximale Suchergebnisgrenze erhöht.

getDependentWorkSpace liefert nur die Datensätze, die im Unterbereich auch automatisch angezeigt werden, d.h. die Einschränkung ist nicht nur auf "nicht gelöscht" sondern auch jegliche weiteren Bedingungen, die in einer ggf. vorhandenen Default-Unterbereichssuche für diese Relation formuliert sind.

Diese Methode sollte nur eingesetzt werden, wenn anschließend schreibende Zugriffe auf dem Suchergebnis stattfinden sollen.

Parameter

  • pk - Der Primärschlüssel der übergeordneten Entität.

  • masterEntity - Der interne Name der übergeordneten Entität. Z.B. "Customer".

  • relation - Der Interne Name der Relation. Z.B. "rCuAc".

Rückgabe

Gibt ein Suchergebnis vom Typ IScriptWorkSpace zurück.

Beispiele

GROOVY
IScriptWorkSpace ws = WorkSpaceScriptUtils.getDependentWorkSpace("entityPk", "Customer", "rCuAc");

2025.5

Code

CODE
IScriptWorkSpace getDependentWorkSpace(String pk, String masterEntity, String relation, List<String> dependentPks)

Lädt zu dem gegebenen Primärschlüssel und Entitätsnamen die abhängigen Daten aus der gegebenen Relation. Es werden höchstens 10000 Datensätze selektiert.
Es können Primärschlüssel als optionale Parameter oder als Liste übergeben werden, um bestimmte Daten in der Relation zu suchen. Wird der optionale Parameter mit null übergeben, wird er ignoriert.

Diese Methode sollte nur eingesetzt werden, wenn anschließend schreibende Zugriffe auf dem Suchergebnis stattfinden sollen. Sonst sollten die Daten mit einer "forRead"-Methode ermittelt werden.

Parameter:

  • pk - Der Primärschlüssel der übergeordneten Entität.

  • masterEntity - Der interne Name der übergeordneten Entität, z.B. "Customer".

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

  • dependentPks - [optional] Eine Liste von Pks, die in dem abhängigen Workspace gesucht werden

Rückgabe:

Gibt ein Suchergebnis vom Typ IScriptWorkSpace zurück.

Beispiele

GROOVY
@Test void myTest() 
{ 
  String coPePk = prepareTestAndGetCoPePk(); 
   
  IScriptWorkSpace depActivityWs = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc"); 
  Assertions.assertEquals(3, WorkSpaceScriptUtils.getSize(depActivityWs), "Test 1: find all dependent Activities"); 
  List activityPks = WorkSpaceScriptUtils.getPrimaryKeysOfWorkSpace(depActivityWs); 
   
  String firstActivityPk = activityPks.get(0); 
  IScriptWorkSpace depActivitiesByPks = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc", firstActivityPk); 
  Assertions.assertEquals(1, WorkSpaceScriptUtils.getSize(depActivitiesByPks), "Test 2: find first Activity of prepareTestAndGetCoPePk"); 
    
  depActivitiesByPks = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc", ""); 
  Assertions.assertEquals(0, WorkSpaceScriptUtils.getSize(depActivitiesByPks), "Test 3: find no Activity because pk does not exist"); 
   
  depActivitiesByPks = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc", new ArrayList()); 
  Assertions.assertEquals(0, WorkSpaceScriptUtils.getSize(depActivitiesByPks), "Test 4: find no Activity because the List is empty"); 
   
  depActivitiesByPks = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc", (List)null); 
  Assertions.assertEquals(3, WorkSpaceScriptUtils.getSize(depActivitiesByPks), "Test 5: Fallback: find all dependent Activities"); 
   
  depActivitiesByPks = WorkSpaceScriptUtils.getDependentWorkSpace(coPePk, "ContactPerson", "rCoPeAc", (String)null); 
  Assertions.assertEquals(3, WorkSpaceScriptUtils.getSize(depActivitiesByPks), "Test 6: Fallback: find all dependent Activities"); 
   
  IScriptWorkSpace depActivitiesBySearch = WorkSpaceScriptUtils.getDependentWorkSpaceBySearch(coPePk, "ContactPerson", "rCoPeAc", (ISearch)null); 
  Assertions.assertEquals(3, WorkSpaceScriptUtils.getSize(depActivitiesBySearch), "Test 7: Fallback: find all dependent Activities"); 
   
  ISearchCondition pk = SearchUtils.createSearchCondition("Pk.Activity", SearchUtils.UN_EQUAL, firstActivityPk); 
  ISearch search = SearchUtils.createSearch("Activity", pk); 
  depActivitiesBySearch = WorkSpaceScriptUtils.getDependentWorkSpaceBySearch(coPePk, "ContactPerson", "rCoPeAc", search); 
  Assertions.assertEquals(2, WorkSpaceScriptUtils.getSize(depActivitiesBySearch), "Test 8: Other Activities of prepareTestAndGetCoPePk"); 
   
  List found = WorkSpaceScriptUtils.getEntries(depActivitiesBySearch); 
  for(IContainer foundActiviy : found) 
  { 
    Assertions.assertNotEquals(firstActivityPk, WorkSpaceScriptUtils.getPk(foundActiviy), "Test 9: Other than first activity pk"); 
  } 
} 
  private String prepareTestAndGetCoPePk() 
{ 
  IContainer customer = WorkSpaceScriptUtils.createDefaultEntry("Customer"); 
  WorkSpaceScriptUtils.setValue(customer, "Name1.Customer", "TestCustomer"); 
  WorkSpaceScriptUtils.setValue(customer, "PeName1.Customer", "TestCustomer"); 
  WorkSpaceScriptUtils.setValue(customer, "MatchCode.Customer", "TEST CUSTOMER"); 
  WorkSpaceScriptUtils.setValue(customer, "PersontypeKey.Customer", LookupUtils.toLookup("PersonType-C")); 
  IScriptWorkSpace customerWs = WorkSpaceScriptUtils.createEmptyWorkSpace("Customer"); 
  customer = WorkSpaceScriptUtils.createEntry(customerWs, 0, customer); 
  WorkSpaceScriptUtils.closeWorkSpace(customerWs); 
   
  String customerPk = WorkSpaceScriptUtils.getPk(customer); 
   
  ISearchCondition cuKeyCond = SearchUtils.createSearchCondition("CustomerKey.ContactPerson", SearchUtils.EQUAL, LookupUtils.toLookup(customerPk)); 
  ISearchCondition autoCoPeCond = SearchUtils.createSearchCondition("IsAutoCoPe.ContactPerson", SearchUtils.EQUAL, true); 
  ISearchCondition coPePkCond = SearchUtils.createSearchCondition("Pk.ContactPerson", SearchUtils.NO_CONDITION); 
  ISearch coPeSearch = SearchUtils.createSearch("ContactPerson", cuKeyCond); 
  coPeSearch = SearchUtils.addSearchCondition(coPeSearch, coPePkCond); 
  coPeSearch = SearchUtils.addSearchCondition(coPeSearch, autoCoPeCond); 
  List coPes = WorkSpaceScriptUtils.searchForRead(coPeSearch); 
  Assertions.assertEquals(1, coPes.size(), "PrepareTest 1 found auto contact person"); 
  IContainer coPeIc = coPes.get(0); 
  String coPePk = WorkSpaceScriptUtils.getPk(coPeIc); 
   
  IScriptWorkSpace activityWs = WorkSpaceScriptUtils.createEmptyWorkSpace("Activity"); 
   
  for(int i = 0; i < 3; i++) 
  { 
    IContainer actIc = WorkSpaceScriptUtils.createDefaultEntry("Activity"); 
    WorkSpaceScriptUtils.setValue(actIc, "Subject.Activity", "Test " + i); 
    WorkSpaceScriptUtils.setValue(actIc, "ActTypeKey.Activity", LookupUtils.toLookup("C0S_ACTTYPE_TELAUS")); 
    WorkSpaceScriptUtils.setValue(actIc, "DefaultContactPerson.Activity", LookupUtils.toLookup(coPePk)); 
    WorkSpaceScriptUtils.setValue(actIc, "EndDate.Activity", DateUtils.NOW); 
    WorkSpaceScriptUtils.setValue(actIc, "StartDate.Activity", DateUtils.NOW); 
    WorkSpaceScriptUtils.createEntry(activityWs, 0, actIc) 
  } 
  WorkSpaceScriptUtils.closeWorkSpace(activityWs); 
   
  return coPePk; 
}
JavaScript errors detected

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

If this problem persists, please contact our support.