<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:25:28 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[UXPROD-2619] Acquisitions API migration enhancements</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-2619</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Overview%3A&quot;&gt;&lt;/a&gt;Overview:&lt;/h2&gt;

&lt;p&gt;Current acquisitions APIs were not specifically designed to be used for migrating data. This feature captures enhancements that have been requested to improve options for migrating acquisitions data into FOLIO. It may include adding a series of APIs or enhancements to existing APIs that facilitate the migration of acquisitions data.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; this may be split in order to add small improvements over the span of multiple releases.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Usecases%3A&quot;&gt;&lt;/a&gt;Use cases:&lt;/h2&gt;

&lt;p&gt;See &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/DD/Acquisitions+API+migration+enhancements&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/display/DD/Acquisitions+API+migration+enhancements&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Approach%3A&quot;&gt;&lt;/a&gt;Approach:&lt;/h2&gt;

&lt;p&gt;TBD&lt;/p&gt;</description>
                <environment></environment>
        <key id="11853">UXPROD-2619</key>
            <summary>Acquisitions API migration enhancements</summary>
                <type id="10002" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium">New Feature</type>
                            <parent id="10132">UXPROD-850</parent>
                                    <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="557058:2f7b6349-450b-419a-ba54-c181f51383ad">Dennis Bridges</assignee>
                                                                <reporter accountid="557058:2f7b6349-450b-419a-ba54-c181f51383ad">Dennis Bridges</reporter>
                                    <labels>
                            <label>acq-morningglory-candidate</label>
                            <label>acquisitions</label>
                    </labels>
                <created>Wed, 12 Aug 2020 16:28:24 +0000</created>
                <updated>Mon, 23 Jan 2023 18:21:43 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="16008" author="712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2" created="Fri, 19 Feb 2021 13:48:44 +0000"  >&lt;p&gt;These are my overall requirements for any (Batch) API. Some could be turned into JIRA, some are more of best practices.&lt;/p&gt;


&lt;p&gt;&lt;b&gt;Stability&lt;/b&gt; - &lt;b&gt;&lt;em&gt;No memory leaks&lt;/em&gt;&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;When the library is live, memory leaks can be maintained over time with recurring&#160; module restarts, but in the DM scenario, a restart could fail a whole batch if not handled properly.&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Stability - &lt;em&gt;Batch size&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;**Instead of promising the world, set a reasonable goal for what batch sizes the modules can handle and make sure the modules can deliver on the promised numbers given it is run/hosted under the minimum requirements. Make this super clear by throwing exceptions for too large batches.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Well crafted API:s&lt;/b&gt; - &lt;b&gt;&lt;em&gt;Error reporting&lt;/em&gt;&lt;/b&gt;&#160;&lt;/p&gt;

&lt;p&gt;FOLIO has enough (Batch) APIs that just give you a silent HTTP 500 when the underlying calls fail. Don&apos;t join them! &lt;br/&gt;
It is a pain having to take a tour of all the sub-module calls and try to find out what went wrong.&#160;&lt;/p&gt;

&lt;p&gt;Tell us &lt;ins&gt;what went wrong&lt;/ins&gt; and &lt;ins&gt;what record&lt;/ins&gt; that failed! Every time!&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Well crafted API:s&lt;/b&gt; - &lt;b&gt;&lt;em&gt;Documentation&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The RAML specs allow for a lot of documentation in the relevant areas. Make use of it!&lt;/p&gt;

&lt;p&gt;Make sure the examples are up-to-date as well.&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Consistency - &lt;em&gt;Change and improve, but in a controlled fashion&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If an API has worked in a certain way, do not make dramatic changes to it. Add another one instead. We have seen APIs that stopped doing certain things.&#160;&lt;/p&gt;

&lt;p&gt;Data migration is by nature reverse-engineering, and having to do that for every API for every module update is very painful.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Consistency - &lt;em&gt;Migrators rely on the schemas too&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Talk to the UI developers and make the &quot;required&quot; properties reflect what is actually required.&#160;&lt;/li&gt;
	&lt;li&gt;Make the descriptions of the properties really good. we show them to our clients/libraries as part of various data mapping activities.&lt;/li&gt;
	&lt;li&gt;Make some kind of indication of what properties are calculated or fetched at display-time.&#160;&lt;/li&gt;
	&lt;li&gt;Personally, I would prefer to have different data models for viewing and writing.&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Data from other modules - &lt;em&gt;If you depend on a module, Depend. On. It.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Take Inventory data for example:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If I migrate an order that has an underlying Inventory dependency, I do not want to add the whole thing in once again. An Identifier to the relevant Inventory records should be enough. &lt;ins&gt;When the record is fetched, the API should be smart enough to look it up!&lt;/ins&gt;&lt;/li&gt;
	&lt;li&gt;If I migrate a historical order where the Inventory records have been weeded, I want to add some Inventory metadata to the order for reference. So it is vital that the possibility to add bibliographic data is maintained&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So, I am proposing sort of a caching mechanism in the modules, so that we do not have to add everything in. Loading some data from Inventory the first time a migrated order is fetched by the orders module should not be too painful?&lt;/p&gt;

&lt;p&gt;&lt;b&gt;BL APIs should work just as well for historical data as for current transactions.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If you want to migrate data using the BL-API route, the APIs should be able to let you replay history from the beginning.&#160;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Document things that do not work in the same way when you replay historical transactions as when you work with current data.&lt;/li&gt;
	&lt;li&gt;The advantage of using the BL API strategy is that you do not have to wire everything up, and that your migration process can be more stable as FOLIO evolves. The downside is that some things that are triggered by BL APIs are not wanted and could cause confusion (like sending out EDI invoices, orders, contacting Vendors ETC). These things would ideally be turned off by some API request parameter. There is always the option of turning off the affected modules, but that could lead to other errors.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                                                <inwardlinks description="is defined by ">
                                        <issuelink>
            <issuekey id="74221">MODINVOSTO-84</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="74223">MODINVOSTO-85</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="74224">MODINVOSTO-86</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="74225">MODINVOSTO-87</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32436">MODORDSTOR-178</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32437">MODORDSTOR-179</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32438">MODORDSTOR-180</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32439">MODORDSTOR-181</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67343">MODFISTO-134</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="59697">MODORDERS-404</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="59761">MODORDERS-473</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Back End Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10123"><![CDATA[XL < 15 days]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10185"><![CDATA[Thunderjet]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10014" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue key="$xmlutils.escape($text)">Migration Tools</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>55.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10064" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>PO Ranking Note</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>These enhancements would be helpful in resolving some of the difficulties with migrating existing records into FOLIO.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01jjv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10071" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: 5Colleges (Full Jul 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10225"><![CDATA[R3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10068" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Chicago (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10211"><![CDATA[R4]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10069" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Cornell (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10213"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10070" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Duke (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10220"><![CDATA[R3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10074" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: GBV (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10240"><![CDATA[R3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10084" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: MI State-Lib of MI (Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10293"><![CDATA[None]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10082" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Mainz (Full TBD)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10283"><![CDATA[None]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10089" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: TAMU (MVP Jan 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10316"><![CDATA[R3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10091" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: U of AL (MVP Oct 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10327"><![CDATA[R4]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 19 Feb 2021 13:48:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                </customfields>
    </item>
</channel>
</rss>