Skip to main content
Skip table of contents

getDependentWorkSpaceBySearch

Code

GROOVY
IScriptWorkSpace getDependentWorkSpaceBySearch(String pk, String masterEntity, String relation, ISearch dependentSearch)

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.
Wird der Parameter dependentSearch mit null übergeben, wird er ignoriert und es wird WorkSpaceScriptUtils.getDependentWorkSpace(String, Sting, String) aufgerufen.

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".

  • dependentSearch - Eine ISearch, um die abhängigen Daten in dem abhängigen Workspace zu suchen.

Rückgabe:

Gibt ein Suchergebnis vom Typ IScriptWorkSpace zurück.

Beispiel

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.