<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><!--StartFragment--><p dir="ltr" style="line-height: 1.656; margin: 0px;" data-mce-style="line-height: 1.656; margin: 0px;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hello,</span></p><b style="font-weight: normal;" data-mce-style="font-weight: normal;"><br></b><p dir="ltr" style="line-height: 1.656; margin: 0px;" data-mce-style="line-height: 1.656; margin: 0px;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I would like to get back to this question. Currently, there is no completely satisfactory way how to deal with such a situation. In the case of such systems, if possible the connector should always communicate with the primary node to which the write was executed (or have some sort of session stickiness which would guarantee this). If this is not possible (in the case of i.e. cloud applications) we have two options, either throw an error or have a loop (preferably with configurable wait time and attempt count) waiting for the result. The problem is that the IaM application has no way of knowing that there is such a delay. It might react to a missing object in such a way as if it was deleted.</span></p><b style="font-weight: normal;" data-mce-style="font-weight: normal;"><br></b><p dir="ltr" style="line-height: 1.656; margin: 0px;" data-mce-style="line-height: 1.656; margin: 0px;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I have described this problem in a work package, so we track this for a potential future improvement:</span><a href="https://support.evolveum.com/wp/9725" style="text-decoration: none;" data-mce-href="https://support.evolveum.com/wp/9725" data-mce-style="text-decoration: none;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">https://support.evolveum.com/wp/9725</span></a></p><b style="font-weight: normal;" data-mce-style="font-weight: normal;"><br></b><p dir="ltr" style="line-height: 1.656; margin: 0px;" data-mce-style="line-height: 1.656; margin: 0px;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Also, I added a short article to our documentation for connector development: </span></p><p dir="ltr" style="line-height: 1.656; margin: 0px;" data-mce-style="line-height: 1.656; margin: 0px;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">https://docs.evolveum.com/connectors/connid/1.x/connector-development-guide/#latency-of-create-operations-and-rate-limits-review</span></p><b style="font-weight: normal;" data-mce-style="font-weight: normal;"><br></b><p dir="ltr" style="line-height: 1.38; margin: 0px;" data-mce-style="line-height: 1.38; margin: 0px;"><span style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">--</span></p><p dir="ltr" style="line-height: 1.38; margin: 0px;" data-mce-style="line-height: 1.38; margin: 0px;"><span style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Best Regards,</span></p><b style="font-weight: normal;" data-mce-style="font-weight: normal;"><br></b><p dir="ltr" style="line-height: 1.38; margin: 0px;" data-mce-style="line-height: 1.38; margin: 0px;"><span style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Matus Macik | Developer and Identity Management Engineer</span></p><p dir="ltr" style="line-height: 1.38; margin: 0px;" data-mce-style="line-height: 1.38; margin: 0px;"><span style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">matus.macik@evolveum.com | www.evolveum.com</span></p><p dir="ltr" style="line-height: 1.38; margin: 0px;" data-mce-style="line-height: 1.38; margin: 0px;"><span style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" data-mce-style="font-size: 12pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Evolveum</span></p></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>From: </b>"midPoint General Discussion" <midpoint@lists.evolveum.com><br><b>To: </b>"midPoint General Discussion" <midpoint@lists.evolveum.com><br><b>Cc: </b>"Davy Priem" <davy.priem@vives.be><br><b>Sent: </b>Monday, May 6, 2024 4:32:18 PM<br><b>Subject: </b>[midPoint] Connector development: Best approach for slow create operation<br></div><div><br><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.E-mailStijl17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:500857019;
        mso-list-type:hybrid;
        mso-list-template-ids:1227413832 24924218 135462915 135462917 135462913 135462915 135462917 135462913 135462915 135462917;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style></div><div data-marker="__QUOTED_TEXT__">
<div class="WordSection1">
<p class="MsoNormal">Hi,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span lang="FR-BE">We’re currently developing a connector for a Saas application (Unit4) using API’s. We have however an issue with the account creation processing:</span></p>
<ul style="margin-top:0cm" type="disc"><li class="MsoListParagraph" style="margin-left:0cm"><span lang="FR-BE">Midpoint (4.8) calls connectors createOp to create a new account</span></li><li class="MsoListParagraph" style="margin-left:0cm"><span lang="FR-BE">Connector calls the API to create the account and the API returns the UID.</span></li><li class="MsoListParagraph" style="margin-left:0cm">Connector passes the UID to Midpoint</li><li class="MsoListParagraph" style="margin-left:0cm"><span lang="FR-BE">Midpoint uses SearchOp to retrieve the account</span></li><li class="MsoListParagraph" style="margin-left:0cm"><span lang="FR-BE">Connector gets a ‘account creation still busy’ from the API and can’t return any data. (it’s a matter of seconds)</span></li><li class="MsoListParagraph" style="margin-left:0cm"><span lang="FR-BE">Midpoint marks the shadow as DEAD.</span></li></ul>
<p class="MsoNormal"><span lang="FR-BE"> </span></p>
<p class="MsoNormal"><span lang="FR-BE">Has anyone experienced the same issue? </span>
Is there any best approach to this? <span lang="FR-BE">Is throwing a RetryableException exception a good approach?
</span>I really want to avoid we have to build in a delay loop in the connector.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><b><span lang="EN-GB" style="font-size:10pt">Davy Priem</span></b><span lang="EN-US"></span></p>
<p class="MsoNormal" style="line-height:13.5pt"><b><span lang="EN-US" style="font-size:10pt;color:#6c6c6c">Hogeschool VIVES</span></b><span lang="EN-US" style="font-size:10pt;color:#6c6c6c"> | Dienst
 IT</span><span lang="EN-US"></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
</div>

<br>_______________________________________________<br>midPoint mailing list<br>midPoint@lists.evolveum.com<br>https://lists.evolveum.com/mailman/listinfo/midpoint<br></div><div><br></div><div data-marker="__SIG_POST__">-- <br></div><div>Best Regards,<br><br>Matus Macik | Developer and Identity Management Engineer<br>matus.macik@evolveum.com | www.evolveum.com<br>Evolveum</div></div></body></html>