다음 코드 단편 예제는 레코드(엔티티)에 중복(하위)이 있는지 여부를 확인합니다. 중복이 있는 경우 후크는 각 중복을 dupone 조치 이름으로 편집하고, "action_info" 필드를 설정하여 원본(상위) 레코드가 테스트되었음을 표시합니다.
Dim status Dim session ' The current Session object Dim parent_id ' The current Entity's display name (ID string) Dim dups ' Array of all direct duplicates of this Entity Dim dupvar ' Variant containing a Link to a duplicate Dim dupobj ' The same Link, but as an Object rather than a Variant Dim entity ' The Entity extracted from the Link If (HasDuplicates()) Then Set session = GetSession dups = GetDuplicates parent_id = GetDisplayName for each dupvar in dups ' You could check these various functions for failures and ' then report any failures to the user (for example, using ' MsgBox). ' Failures are unlikely, but possible--for example, someone ' could concurrently "unmark" an entity as a duplicate. Set dupobj = dupvar Set entity = dupobj.GetChildEntity session.EditEntity entity, "dupdone" SetFieldValue "action_info", _ "Original " & parent_id & " is tested" ' commit the record to the database if validation returns no ' errors status = entity.Validate if status = "" then entity.Commit else entity.Revert End If Next End If
my($session); # The current Session object my($links); # The reference to the links collection object my($link); my($cnt); my($itm); my($childID); if ($entity->HasDuplicates()) { $session=$entity->GetSession(); $links = $entity->GetDuplicates(); $session->OutputDebugString("links is " . $links . "(" . ref ($links) . ")\n" ); $cnt = $links->Count(); $session->OutputDebugString("count is " . $cnt . "(" . ref ($cnt) . ")\nchildren:\n" ); for ($i = 0; $i<$cnt; $i++) { $itm = $links->Item($i); $session->OutputDebugString("Item is " . $itm . "(" . ref ($itm) . ")\n"; $childID = $itm->GetChildEntityId(); $session->OutputDebugString($childID . "\n" ); } $session->OutputDebugString("done"); } else { }