<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hello Davy,<br>
    <br>
    thank you very much for your tip but:<br>
    <br>
    The field in my postgresql table is type BYTEA and using the
    DatabaseTableConnector v1.5.2.0 in resource -> edit raw the
    element in the schema is of type="xsd:base64Binary".<br>
    In this constellation basic.isEmpty(input) returns always true.
    Therefore Your code is not working for inbound mapping in this way.<br>
    <br>
    I found a second Problem on outbound mapping:<br>
    Loading a Jpeg in midPoint GUI and outbund mapping with "As is"
    saves the image into the database but deleting the Jpeg in midPoint
    GUI leaves the image in the database untouched!<br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 23.04.2025 um 13:42 schrieb Davy
      Priem:<br>
    </div>
    <blockquote type="cite"
cite="mid:DB4PR05MB104878AB0EBBEF7C5D845C708EBBA2@DB4PR05MB10487.eurprd05.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Hi,</div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        See below to import a photo from a database table.</div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Best regards</div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Davy Priem</div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        VIVES University of Applied Sciences</div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="line-height: 18px; margin-left: 40px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>attribute></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                <ref>ri:Photo</ref></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>               
            <displayName>Photo</displayName></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                <inbound></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                    <expression></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                        <script></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                            <code></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                              import java.util.Base64;</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i><br>
          </i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                              if
            (!(basic.isEmpty(input))){</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                                 log.info("photo is not
            null");</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                                 byte[] decodedBytes =
            Base64.getDecoder().decode(input);</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                                 return decodedBytes;</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                              }</i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                            </code></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                        </script></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                    </expression></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                    <target></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                       
            <path>$focus/jpegPhoto</path></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                    </target></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>                </inbound></i></b></div>
      <div
style="line-height: 18px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <b><i>            </attribute></i></b></div>
      <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <hr style="display:inline-block;width:98%" tabindex="-1">
      <div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif"
          style="font-size:11pt" color="#000000"><b>Van:</b> midPoint
          <a class="moz-txt-link-rfc2396E" href="mailto:midpoint-bounces@lists.evolveum.com"><midpoint-bounces@lists.evolveum.com></a> namens Ch.
          Olbricht via midPoint <a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com"><midpoint@lists.evolveum.com></a><br>
          <b>Verzonden:</b> woensdag 23 april 2025 13:38<br>
          <b>Aan:</b> <a class="moz-txt-link-abbreviated" href="mailto:midpoint@lists.evolveum.com">midpoint@lists.evolveum.com</a>
          <a class="moz-txt-link-rfc2396E" href="mailto:midpoint@lists.evolveum.com"><midpoint@lists.evolveum.com></a><br>
          <b>CC:</b> Ch. Olbricht <a class="moz-txt-link-rfc2396E" href="mailto:colbricht@hs-harz.de"><colbricht@hs-harz.de></a><br>
          <b>Onderwerp:</b> [midPoint] import jpegPhoto from a database
          table</font>
        <div> </div>
      </div>
      <div class="BodyFragment"><font size="2"><span
            style="font-size:11pt;">
            <div class="PlainText">Hi Community,<br>
              <br>
              does anyone knows, how JPEG import to attribute
              "jpegPhoto" from a <br>
              database table works?<br>
              <br>
              <br>
              Having a Postgresql Table like:<br>
              <br>
                   CREATE TABLE test(<br>
                       user TEXT,<br>
                       image BYTEA)<br>
              <br>
              And a resource with in- and outbound mappings, including
              for the <br>
              "jpegPhoto" attribute:<br>
              <br>
                   ...<br>
                   <attribute><br>
                       <ref>ri:image</ref><br>
                       <outbound><br>
                           <name>jpegPhoto_out</name><br>
                           <strength>strong</strength><br>
                           <source><br>
                               <path>jpegPhoto</path><br>
                           </source><br>
                       </outbound><br>
                       <inbound><br>
                           <name>jpegPhoto_in</name><br>
                           <strength>strong</strength><br>
                           <target><br>
                               <path>jpegPhoto</path><br>
                           </target><br>
                       </inbound><br>
                   </attribute><br>
              <br>
              OK, select a user, upload a JPG-file and save the user
              works and <br>
              outbound mapping saves the user- and image-data in table
              test.<br>
              <br>
              But deleting the jpegPhoto attribute from this user and
              doing then a <br>
              import task with the same table-data from the outbound
              mapping ... <br>
              jpegPhoto is still empty!<br>
              <br>
              Why?<br>
              <br>
              <br>
              Kind Regards<br>
              Christian<br>
              _______________________________________________<br>
              midPoint mailing list<br>
              <a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><br>
              <a
href="https://lists.evolveum.com/mailman/listinfo/midpoint"
                moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.evolveum.com/mailman/listinfo/midpoint</a><br>
            </div>
          </span></font></div>
    </blockquote>
    <br>
  </body>
</html>