Skip to content

Pending Exports

The Pending Export cmdlet reads the changes JIM has worked out for a Connected System and not yet written to it: one Pending Export per Connected System Object to create, update or delete, each with its attribute changes. How they arise and are exported is covered in Pending Exports.

Choosing how to call Get-JIMPendingExport To read the Pending Exports queued for a Connected System, give -ConnectedSystemId: it returns a page of them, every page with -All, or how many with -Count, filtered by -Search, -ChangeType, -Status or -Failing. To read one Pending Export, give its -Id. Alone, -Id returns it in full: its attribute changes, its unresolved references with the reason for each, and where each queued value came from. With -QueuedBy it returns the synchronisation runs that queued it, and why, which pipe into Get-JIMActivityExecutionItem -Causes. With -AttributeName it pages through that attribute's value changes, for a large multi-valued attribute such as member. a Connected System's one, by its ID all of it why it was queued a large attribute Readingexports Which Pending Exports? What do you need of it? -ConnectedSystemIda page, -All or -Count;filter by change type or status -Id aloneattribute changes, unresolvedreferences, value sources -Id -QueuedBythe runs that queued it, and why -Id -AttributeNameone attribute's changes,a page at a time Choosing how to call Get-JIMPendingExport To read the Pending Exports queued for a Connected System, give -ConnectedSystemId: it returns a page of them, every page with -All, or how many with -Count, filtered by -Search, -ChangeType, -Status or -Failing. To read one Pending Export, give its -Id. Alone, -Id returns it in full: its attribute changes, its unresolved references with the reason for each, and where each queued value came from. With -QueuedBy it returns the synchronisation runs that queued it, and why, which pipe into Get-JIMActivityExecutionItem -Causes. With -AttributeName it pages through that attribute's value changes, for a large multi-valued attribute such as member. a Connected System's one, by its ID all of it why it was queued a large attribute Reading exports Which Pending Exports? -ConnectedSystemIda page, -All or -Count;filter by change type or status What do you need of it? -Id aloneattribute changes, unresolvedreferences, value sources -Id -QueuedBythe runs that queued it, and why -Id -AttributeNameone attribute's changes, a page at a time

Get-JIMPendingExport

Gets the Pending Exports queued for a Connected System, and pages through the value changes of a large multi-valued attribute.

Syntax

# List (default)
Get-JIMPendingExport -ConnectedSystemId <int> [-Search <string>] [-Page <int>] [-PageSize <int>] [-Failing] [-ChangeType <string>] [-Status <string>]

# Count
Get-JIMPendingExport -ConnectedSystemId <int> -Count [-Failing] [-ChangeType <string>] [-Status <string>]

# ListAll
Get-JIMPendingExport -ConnectedSystemId <int> -All [-Search <string>] [-PageSize <int>] [-Force] [-Failing] [-ChangeType <string>] [-Status <string>]

# QueuedBy
Get-JIMPendingExport -Id <guid> -QueuedBy

# AttributeChangesAll
Get-JIMPendingExport -Id <guid> -AttributeName <string> -All [-Search <string>] [-PageSize <int>] [-Force]

# AttributeChanges
Get-JIMPendingExport -Id <guid> -AttributeName <string> [-Search <string>] [-Page <int>] [-PageSize <int>]

# ById
Get-JIMPendingExport -Id <guid>

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes (List, Count, ListAll) The ID of the Connected System. Accepts pipeline input by property name.
Id guid Yes (QueuedBy, AttributeChangesAll, AttributeChanges, ById) The ID of the Pending Export to get. Accepts pipeline input by property name.
QueuedBy switch Yes (QueuedBy) Return the runs that queued the Pending Export instead. Pending Exports listed by Get-JIMPendingExport can be piped straight in.
AttributeName string Yes (AttributeChangesAll, AttributeChanges) With -Id, gets the value changes for this attribute a page at a time, for a multi-valued attribute such as member whose changes the Pending Export read by ID cuts short.
Search string No (List, ListAll, AttributeChangesAll, AttributeChanges) Returns only the Pending Exports whose target object, source Metaverse Object or error matches this text; or with -AttributeName, only the changes whose value matches it.
Page int No (List, AttributeChanges) 1 The page to get. At least 1.
PageSize int No (List, ListAll, AttributeChangesAll, AttributeChanges) 50 How many Pending Exports or changes a page holds. From 1 to 100.
All switch Yes (ListAll, AttributeChangesAll) Fetches every page instead of one. Stops after 1000 pages with a warning; -Force fetches the rest.
Force switch No (ListAll, AttributeChangesAll) With -All, fetches every page, past the 1000-page limit.
Count switch Yes (Count) Returns how many Pending Exports there are, rather than the Pending Exports.
Failing switch No (List, Count, ListAll) Returns, or with -Count counts, only the Pending Exports whose last attempt failed. JIM attempts each again at every export run until it succeeds; its FailingSince says since when it has been failing.
ChangeType string No (List, Count, ListAll) Returns, or with -Count counts, only the Pending Exports that make this kind of change. One of Create, Update or Delete.
Status string No (List, Count, ListAll) Returns, or with -Count counts, only the Pending Exports with this status. A failing Pending Export is Pending; use -Failing to find those. One of Pending, ExportNotConfirmed, Executing, Exported or Parked.

Output

The Pending Exports, the one Pending Export, its value changes for -AttributeName, or with -Count how many there are. With -QueuedBy, one row per run that queued the Pending Export, newest first; a warning says when runs are no longer retained, or when earlier ones may be missing.

With -ConnectedSystemId, or -ConnectedSystemId and -All:

Property Type Description
Id guid The ID of the Pending Export.
ConnectedSystemId int The ID of the Connected System the change is for.
ChangeType string Whether the Pending Export creates, updates or deletes the object. One of Create, Update or Delete.
Status string Where the Pending Export has got to: Pending, Executing, Exported (awaiting a confirming import), ExportNotConfirmed (to be retried), or Parked (waiting on a decision about a generated value). A Pending Export whose last attempt failed is Pending, with FailingSince set. One of Pending, ExportNotConfirmed, Executing, Exported or Parked.
CreatedAt datetime When this Pending Export was created.
LastAttemptedAt datetime When the last export attempt was made (UTC); empty before the first.
ErrorCount int How many export attempts in a row have failed; zero once an attempt succeeds. A failing Pending Export is attempted again at every export run, however many attempts have failed.
FailingSince datetime When the first of the current run of failed attempts was made (UTC); empty when the last attempt did not fail.
LastErrorMessage string The error from the last failed attempt; empty when none has failed.
HasUnresolvedReferences bool Whether any reference change cannot be written yet, because its target has no object in the Connected System.
UnresolvedReferenceCount int How many of the attribute changes are references still owed to the Connected System: their targets have no object there yet, so they were not written with the rest of the export.
TargetObjectIdentifier string The target Connected System Object's external identifier, when it has one.
SourceMetaverseObjectId guid The ID of the source Metaverse Object that triggered this export.
SourceMetaverseObjectDisplayName string The display name of the source Metaverse Object, if available.
SourceMetaverseObjectTypePluralName string The plural name of the source Metaverse Object's Metaverse Object Type, which its page's address is built from; empty when there is no source Metaverse Object.
AttributeChangeCount int The number of attribute value changes in this Pending Export.
ConnectedSystemObjectId guid The ID of the target Connected System Object, if available (for updates/deletes).

With -Id:

Property Type Description
Id guid The ID of the Pending Export.
ConnectedSystemId int The ID of the Connected System the change is for.
ConnectedSystemName string The name of that Connected System.
ChangeType string Whether the Pending Export creates, updates or deletes the object. One of Create, Update or Delete.
Status string Where the Pending Export has got to: Pending, Executing, Exported (awaiting a confirming import), ExportNotConfirmed (to be retried), or Parked (waiting on a decision about a generated value). A Pending Export whose last attempt failed is Pending, with FailingSince set. One of Pending, ExportNotConfirmed, Executing, Exported or Parked.
CreatedAt datetime When the Pending Export was created (UTC).
ErrorCount int How many export attempts in a row have failed; zero once an attempt succeeds. A failing Pending Export is attempted again at every export run, however many attempts have failed.
FailingSince datetime When the first of the current run of failed attempts was made (UTC); empty when the last attempt did not fail.
LastAttemptedAt datetime When the last export attempt was made (UTC); empty before the first.
LastErrorMessage string The error from the last failed attempt; empty when none has failed.
HasUnresolvedReferences bool Whether any reference change cannot be written yet, because its target has no object in the Connected System.
ConnectedSystemObjectId guid The target Connected System Object, if one exists.
ConnectedSystemObjectDisplayName string The target Connected System Object's display name; empty when there is no target yet, or it has none.
ConnectedSystemObjectTypeName string The name of the target Connected System Object's Object Type.
SourceMetaverseObjectId guid The source Metaverse Object that triggered this export.
SourceMetaverseObjectDisplayName string The source Metaverse Object's display name; empty when there is none.
SourceMetaverseObjectTypeName string The name of the source Metaverse Object's Metaverse Object Type.
AttributeChanges object[] Attribute value changes (capped for multi-valued attributes). Each has Id, AttributeId, AttributeName, ChangeType, Status, StringValue, DateTimeValue, IntValue, LongValue, DecimalValue, ByteValue, GuidValue, BoolValue, UnresolvedReferenceValue, ExportAttemptCount, SyncRuleId and SyncRuleName.
AttributeChangeSummaries object[] Per-attribute metadata showing total change counts. Present when values have been capped so consumers know when changes have been truncated. Each has AttributeName, TotalCount, ReturnedCount and HasMore.
UnresolvedReferences object[] The reference changes not written yet, each with the reason, worked out against the Connected System as it stands when the Pending Export is read. Empty when there are none. Each has AttributeChangeId, AttributeName, ReferencedMetaverseObjectId, ReferencedMetaverseObjectDisplayName and Reason.
ValueSources object[] Where the value queued for each Connected System attribute came from, one entry per attribute whose export mapping can be resolved. Empty for a delete, which has no source Metaverse Object. Each has ConnectedSystemAttributeId, IsComputed, IsGeneratedValue, Expression, SourceMetaverseAttributeId, SourceMetaverseAttributeName, Origin and HasSeveralOrigins.

With -Id and -AttributeName, or -Id and -AttributeName and -All:

Property Type Description
Id guid The ID of the change.
AttributeId int The ID of the Connected System attribute the change writes.
AttributeName string The name of that attribute.
ChangeType string What the change does to the attribute: Add a value, Update it, Remove a value, or RemoveAll values. One of Add, Update, Remove or RemoveAll.
Status string Where the change has got to: Pending, ExportedPendingConfirmation (exported, awaiting a confirming import) or ExportedNotConfirmed (to be sent again at the next export run). One of Pending, ExportedPendingConfirmation or ExportedNotConfirmed.
StringValue string The value of a Text attribute; empty otherwise.
DateTimeValue datetime The value of a DateTime attribute (UTC); empty otherwise.
IntValue int The value of a Number attribute; empty otherwise.
LongValue long The value of a LongNumber attribute; empty otherwise.
DecimalValue double The value of a Decimal attribute; empty otherwise.
ByteValue byte[] The value for Binary attributes. Serialised to JSON as a base64-encoded string (System.Text.Json's representation for byte arrays).
GuidValue guid The value of a Guid attribute; empty otherwise.
BoolValue bool The value of a Boolean attribute; empty otherwise.
UnresolvedReferenceValue string For a reference, the Connected System's identifier for the object it refers to, as text; empty otherwise.
ExportAttemptCount int How many times the change has been exported.
SyncRuleId int The ID of the export Synchronisation Rule whose mapping produced the change; empty when that rule has since been deleted. SyncRuleName survives it.
SyncRuleName string Snapshot of the contributing Synchronisation Rule's name at staging time.

With -Count: an int.

With -QueuedBy:

Property Type Description
Id guid The Run Profile Execution Item's id.
ActivityId guid The Activity (run) the item belongs to.
Executed datetime When the run executed (UTC).
TargetType string What the run targeted. One of NotSet, ExampleDataTemplate, ConnectedSystem, ConnectedSystemRunProfile, SynchronisationRule, MetaverseObject, TrustedCertificate, ObjectMatchingRule, MetaverseAttribute, ServiceSetting, HistoryRetentionCleanup, MetaverseObjectType, System, Schedule, TemporalScopeReconciliation, ApiKey, Role, PredefinedSearch, ConnectorDefinition, ExampleDataSet, SystemInitialisation, DataGeneration, Authentication, MetaverseObjectHousekeeping, ConnectedSystemObject, PasswordSynchronisation or ScimRequests.
TargetName string The run's name, typically the Run Profile's.
TargetContext string Where the run happened, typically its Connected System's name.
ConnectedSystemId int The Connected System the run was against, where it was against one.
RunType string The kind of run: Full Import, Delta Synchronisation, Export and so on. One of NotSet, FullImport, DeltaImport, FullSynchronisation, DeltaSynchronisation or Export.
ObjectChangeType string What the item did to its object. One of NotSet, Added, Updated, Deleted, Projected, Joined, AttributeFlow, Disconnected, DisconnectedOutOfScope, OutOfScopeRetainJoin, DriftCorrection, Exported, Deprovisioned, NoChange, PendingExport, PendingExportConfirmed, Created or ExportScopeReview.
OutcomeSummary string A short summary of the item's outcome, where one was recorded.
ErrorType string The error the item ended in, or empty where it succeeded. One of NotSet, AmbiguousMatch, CouldNotMatchObjectType, CouldNotJoinDueToExistingJoin, DuplicateImportedAttributes, MissingExternalIdAttributeValue, UnexpectedAttribute, UnresolvedReference, UnsupportedExternalIdAttributeType, ExportNotConfirmed, ExportConfirmationFailed, CsoCreationFailed, DuplicateObject, InvalidGeneratedExternalId, UnhandledError, ExpressionEvaluationError, ExpressionMissingInput, MultiValuedToSingleValued, DeltaImportFallbackToFullImport, ImportHashVerificationFailed, ImportAttributeValueError, ConnectorConfigurationError, CouldNotExportDueToExistingConnectedSystemObject, ClassMembershipRequirementsNotMet, GeneratedValueExhausted, GeneratedValueWidthExceeded, GeneratedValueCollisionUnresolved, UniqueValueAlreadyInUse, ObjectMatchingRuleFailed, ObjectTypeChanged, PasswordRequiredToEnableAccount, AmbiguousProvisioningMatch, ScopingCriterionFailed, DatesCollapseAtTargetResolution, OutsideManagedScope, AccessDenied, RejectedByConnectedSystem, PlaceholderMemberConstraintViolation, MissingDependency, ConcurrencyConflict or CredentialAttributeNotExported.
DisplayName string The name of the object the item was about, as recorded.
ObjectType string The object's type, as recorded.
ExternalId string The object's external ID, where it is a Connected System Object.
ConnectedSystemObjectId guid The Connected System Object the item was about, where it was about one.
MetaverseObjectId guid The Metaverse Object the item was about, where it was about one.
Because string The nearest cause in one plain-language line, exactly as the portal reads it: the first cause and how many more there are, or why there is none ("No earlier causes recorded", "What caused this is no longer retained").
NearestCauses object[] The item's nearest causes, grouped into cohorts; at most three, with NearestCauseCount giving the total. Empty where nothing earlier was recorded or retained. Only this first step is read, so the members' own causes are empty here; read the causes of the item with this row's Id for the full chain. Each has EdgeType, ReasonCode, SourceImportChangeType, MetaverseChangeType, ConnectedSystemId, ConnectedSystemName, SyncRuleId, SyncRuleName, ObjectTypeName, ObjectTypePluralName, AttributeName, EffectSyncOutcomeId, MemberCount and Members.
NearestCauseCount int How many cohorts of nearest causes the item has in all.
Resolution string How the item's causes end: Resolved where it has any, NoFurtherCauses where nothing earlier was recorded, or CauseNotRetained where history retention has since removed what caused it. One of Resolved, NoFurtherCauses, CauseNotRetained or DepthLimitReached.

Examples

List Pending Exports for a Connected System
Get-JIMPendingExport -ConnectedSystemId 3
Search Pending Exports
Get-JIMPendingExport -ConnectedSystemId 3 -Search "jsmith" -PageSize 25
Get all Pending Exports
Get-JIMPendingExport -ConnectedSystemId 3 -All
Get only the deletions waiting to export
Get-JIMPendingExport -ConnectedSystemId 3 -ChangeType Delete -Status Pending -All
View details of a specific Pending Export
Get-JIMPendingExport -Id "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
See which synchronisation runs queued a Pending Export, and why
Get-JIMPendingExport -Id "a1b2c3d4-e5f6-7890-abcd-ef1234567890" -QueuedBy |
    Format-Table Executed, TargetName, TargetContext, Because
Page through member additions on a group export
Get-JIMPendingExport -Id "a1b2c3d4-..." -AttributeName "member" -Page 1 -PageSize 100

Notes

  • -QueuedBy rows have the same shape as an object's causal timeline in Get-JIMActivityExecutionItem, and their Id is the execution item's own, so they pipe straight into Get-JIMActivityExecutionItem -Causes. See the Causality Explorer.
  • For large multi-valued attribute changes (adding hundreds of members to a group, say), use -AttributeName to page through the individual changes rather than loading them all at once.
  • With -Id, UnresolvedReferences lists each reference change not yet written, with its Reason: Resolvable (written on the next export run), AwaitingAnchor (the referenced object is in this Connected System but has no anchor yet) or NotInTargetSystem (it has no Connected System Object here). See Unresolved reference handling on export.
  • ValueSources names where each attribute's queued value came from: an expression, chained mapping or generated value (IsComputed is $true), or the single Metaverse attribute it was read from, with that attribute's current Origin.

See also