<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Vault Api - Check-out and Check-in issue in Vault Customization Forum</title>
    <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12535941#M1134</link>
    <description>&lt;P&gt;This code snippet should help to compare your approach with a working one:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;// checkin new file version
                AcquireFilesSettings aqSettings = new AcquireFilesSettings(conn)
                {
                    DefaultAcquisitionOption = AcquireFilesSettings.AcquisitionOption.Checkout
                };
                vdfFile = new VDF.Vault.Currency.Entities.FileIteration(conn, wsFile);
                aqSettings.AddEntityToAcquire(vdfFile);
                var results = conn.FileManager.AcquireFiles(aqSettings);
                try
                {
                    mUploadedFile = conn.FileManager.CheckinFile(results.FileResults.First().File, "Created by Job Processor", false, null, null, false, null, FileClassification.None, false, vdfPath);
                }
                catch
                {
                    throw new Exception("Job could not update existing report file " + vdfFile);
                }&lt;/LI-CODE&gt;</description>
    <pubDate>Fri, 02 Feb 2024 07:07:24 GMT</pubDate>
    <dc:creator>Markus.Koechl</dc:creator>
    <dc:date>2024-02-02T07:07:24Z</dc:date>
    <item>
      <title>Vault Api - Check-out and Check-in issue</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12533654#M1133</link>
      <description>&lt;P&gt;Hey everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a problem with checking out and checking in a file from and to Autodesk Vault.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the check-out I am using "FileManager.AcquireFiles(...)"&amp;nbsp;and for the check-in, I am using&amp;nbsp;"FileManager.CheckinFile()". The problem is that I can do the following workflow with the Vault Api only once for a new file: Checkout -&amp;gt; File modification -&amp;gt; Checkin. For some reason, my program leaves its thread the second time I am trying to check out the same file. I realized that although the first check-in worked and the file was properly displayed as checked-in via the Vault Client the property "Checked out" still shows a time stamp. I am not quite sure why it seems so hard to do a "simple" check-out and check-in with this API.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I hope some of you understand my issue because I am not sure how to explain it in a more comprehensible way.&lt;BR /&gt;&lt;BR /&gt;Maybe you have a well-documented sample where this process is shown.&lt;BR /&gt;&lt;BR /&gt;Thanks in advance and best regards.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Feb 2024 07:41:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12533654#M1133</guid>
      <dc:creator>felix.bausemer</dc:creator>
      <dc:date>2024-02-01T07:41:11Z</dc:date>
    </item>
    <item>
      <title>Re: Vault Api - Check-out and Check-in issue</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12535941#M1134</link>
      <description>&lt;P&gt;This code snippet should help to compare your approach with a working one:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;// checkin new file version
                AcquireFilesSettings aqSettings = new AcquireFilesSettings(conn)
                {
                    DefaultAcquisitionOption = AcquireFilesSettings.AcquisitionOption.Checkout
                };
                vdfFile = new VDF.Vault.Currency.Entities.FileIteration(conn, wsFile);
                aqSettings.AddEntityToAcquire(vdfFile);
                var results = conn.FileManager.AcquireFiles(aqSettings);
                try
                {
                    mUploadedFile = conn.FileManager.CheckinFile(results.FileResults.First().File, "Created by Job Processor", false, null, null, false, null, FileClassification.None, false, vdfPath);
                }
                catch
                {
                    throw new Exception("Job could not update existing report file " + vdfFile);
                }&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 02 Feb 2024 07:07:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12535941#M1134</guid>
      <dc:creator>Markus.Koechl</dc:creator>
      <dc:date>2024-02-02T07:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: Vault Api - Check-out and Check-in issue</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12550148#M1135</link>
      <description>&lt;P&gt;Thank you for your reply.&lt;BR /&gt;&lt;BR /&gt;I tried your approach but it seems that the method "AcquireFiles(...)" returns an empty collection.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static FileIteration CheckinFile(
Connection connection, 
long masterId, 
string localFilePath, 
string newFileName = null, 
FileClassification classification = FileClassification.None)
{
AcquireFilesSettings aqSettings = new AcquireFilesSettings(connection)
{
DefaultAcquisitionOption = AcquireFilesSettings.AcquisitionOption.Checkout
};

File file = connection.WebServiceManager.DocumentService.GetFilesByMasterId(masterId)[0];

FileIteration fileIteration = new FileIteration(connection, file);
aqSettings.AddEntityToAcquire(fileIteration);
var results = connection.FileManager.AcquireFiles(aqSettings);
FilePathAbsolute filePathAbsolute = new FilePathAbsolute(localFilePath);
try
{
return connection.FileManager.CheckinFile(results.FileResults.First().File, "Created by Job Processor", false, null, null, false, newFileName, classification, false, filePathAbsolute);
}
catch(Exception e)
{
throw new Exception($"Job could not update existing report file {fileIteration}\n{e.Message}");
}
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="felixbausemer_0-1707463269664.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1324206i5AFDB9CD9A118E56/image-size/medium?v=v2&amp;amp;px=400" role="button" title="felixbausemer_0-1707463269664.png" alt="felixbausemer_0-1707463269664.png" /&gt;&lt;/span&gt;&lt;BR /&gt;Thank you in advance.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2024 07:23:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12550148#M1135</guid>
      <dc:creator>felix.bausemer</dc:creator>
      <dc:date>2024-02-09T07:23:10Z</dc:date>
    </item>
    <item>
      <title>Re: Vault Api - Check-out and Check-in issue</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12554791#M1136</link>
      <description>&lt;P&gt;The collection is filled if you downloaded files. If you checked out without downloading it, it is empty. Use the FileAquisitionResult object for each file to investigate in detail. The sample I shared before does not need to edit an existing file; it checks in a newly created file as a new iteration. I am sorry that I did not consider this when providing the sample.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another sample code demonstrates the check-out/download, local edit, and check-in:&amp;nbsp;&lt;A href="https://github.com/koechlm/Vault-Job-Processor---iLogic-Extension/blob/2024.1/Autodesk.VltInvSrv.iLogicSampleJob/iLogicJobExtension.cs#L486" target="_blank"&gt;Vault-Job-Processor---iLogic-Extension/Autodesk.VltInvSrv.iLogicSampleJob/iLogicJobExtension.cs at 2024.1 · koechlm/Vault-Job-Processor---iLogic-Extension (github.com)&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Feb 2024 10:43:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12554791#M1136</guid>
      <dc:creator>Markus.Koechl</dc:creator>
      <dc:date>2024-02-12T10:43:27Z</dc:date>
    </item>
    <item>
      <title>Re: Vault Api - Check-out and Check-in issue</title>
      <link>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12554899#M1137</link>
      <description>&lt;P&gt;Hello Markus,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for the update. I found a solution in the meantime.&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static FileIteration CheckinFile(Connection connection, long masterId, string localFilePath, string newFileName = null, FileClassification classification = FileClassification.None)
{
    File file = connection.WebServiceManager.DocumentService.GetFilesByMasterId(masterId)[0];

    FileIteration fileIteration = new FileIteration(connection, file);

    IntPtr parent = new IntPtr();

    InteractiveAcquireFileSettings settings = new InteractiveAcquireFileSettings(connection, parent, "Download file");

    settings.AddFileToAcquire(fileIteration, AcquireFilesSettings.AcquisitionOption.Download);
    var results = connection.FileManager.AcquireFiles(settings);

    FileAssocParam[] fileAssociations = FileService.GetFileAssocParams(connection, masterId).ToArray();

    Autodesk.Connectivity.WebServices.BOM bom = connection.WebServiceManager.DocumentService.GetBOMByFileId(file.Id);

    FilePathAbsolute filePathAbsolute = new FilePathAbsolute(localFilePath);
    try
    {
        return connection.FileManager.CheckinFile(results.FileResults.First().File, "Checked in by plugin", false, fileAssociations, bom, false, newFileName, classification, false, filePathAbsolute);
    }
    catch (Exception e)
    {
        throw new Exception($"Job could not update existing report file {fileIteration}\n{e.Message}");
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It works so far.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Feb 2024 11:46:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vault-customization-forum/vault-api-check-out-and-check-in-issue/m-p/12554899#M1137</guid>
      <dc:creator>felix.bausemer</dc:creator>
      <dc:date>2024-02-12T11:46:44Z</dc:date>
    </item>
  </channel>
</rss>

