Uploaded image for project: 'ui-data-import'
  1. ui-data-import
  2. UIDATIMP-294

Field Mapping Profile details: Order PO & POL from MARC Bib (Create/Edit)

    XMLWordPrintable

Details

    • Folijet Sprint 150
    • 8
    • Folijet
    • Nolana R3 2022

    Description

      Purpose: To record the details of field mappings and defaults required to create one or more Orders and their Order lines from an imported MARC Bibliographic record file

      As a staff person
      I want to input MARC mapping fields for Orders and Order lines, from incoming MARC Bib records
      So that I can create Orders and Order lines when importing MARC Bib record files

      Background information:

      • If questions, go to the Orders app and Create a new order, to see how the fields work
      • Field mapping profile/Data import only will be used for one-time, non-package orders. Order and order line fields and values related to ongoing or package orders are not included in this field mapping profile
      • Use standard MARC field mapping syntax, as documented here: https://wiki.folio.org/display/FOLIOtips/Field+Mapping+profiles%3A+MARC
      • Since this profile will be used for Creates only, all repeatable fields will always be "Add to existing", so repeatable dropdown for Add/Remove/Etc is not required
      • Mockups are here: https://docs.google.com/presentation/d/1BJz5_71L9pCxIBvYO2yygcVdV_0amTrcnakGYB9aeeY/edit?usp=sharing, and added as images in this Jira, in Order field mapping profile 01-11
      • Examples of MARC field mapping types are also attached to this story, in Types of fields in MARC field mappings 1-5

      Question for Devs: Break out any of these components to separate UI stories?

      Scenario 1

      • Given the Data Import field mapping profile Create/Edit screen
      • When viewing the Details section for a profile with Incoming record type = MARC Bib and FOLIO record type = Order
      • Then it should look roughly like the attached screenshots Order field mapping profile 01-11 (based on the Order App Create/Edit screen and described here). The screens can be compressed vertically some from how they appear in the wireframes. The fields are not all represented exactly correctly in the mockups, but the attached Types of fields in MARC field mappings 1-5 screenshots will show how each field should be represented in the UI. When there are validation lists for fields, the lists or calls to identify the lists are detailed in this story.
      • Standard field mapping profile layout
      • Standard MARC mapping syntax, with standard validation
      • Summary accordion, defaulted to open, with the Name, incoming record type, FOLIO record type, and Description
      • The field mapping details screen should look and feel as much like the regular Order App Create/Update screen as possible
        • Sub-header, left justified: Field mapping [space-dot-space] Order
        • Top right: button to collapse/expand all accordions
        • Standard Associated action profiles accordion at bottom
        • Standard Close/Save footer for the field mapping profile overall
        • Individual fields:
          • Field mapping [dot] Order accordion (parallel to Invoice field mapping)
            • "Collapse all" option at the far right of the line
          • Divider line
          • Order information accordion
            • Purchase order status: Non-repeatable, with reference values based on the tenant's Settings/Orders/Approvals setting, e.g. https://folio-snapshot.dev.folio.org/settings/orders/approvals and the Approved checkbox in the field mapping profile
              • If Approval required setting is Yes, and Approved is not checked, then show dropdown values
                • Pending
              • If Approval required setting is Yes and Approved is checked, then show dropdown values
                • Pending
                • Open
              • If Approval required setting is No, then show dropdown values
                • Pending
                • Open
            • Approved: Standard checkbox, default to unchecked
            • Purchase order lines limit setting: Not mappable
            • Override purchase order lines limit setting: Non-repeatable, number
              • Ghost text: Enter value
                • If value entered here, Orders app should use this value instead of the default
                • If value not entered here, Orders app should use the default value
            • Prefix: Non-repeatable, with reference values from tenant's Settings/Orders/PO number/Prefixes setting, e.g. https://folio-snapshot.dev.folio.org/settings/orders/prefixes
            • PO number: Non-repeatable; editable varies based on the tenant's Settings/Orders/PO number/Edit setting, e.g. https://folio-snapshot.dev.folio.org/settings/orders/po-number
              • If "User can edit" is not checked, then make the PO number field Not mappable
                • Orders app will assign the next available PO number
              • If "User can edit" is checked, then make the PO number field mappable, free text
                • Orders app will assign the PO number designated by the MARC mapping in the field mapping profile
                • If no PO number designated in the MARC mapping, then default to the next sequential PO number
                • NOTE: What happens if varying PO numbers found in the MARC mapping field?
            • Suffix: Non-repeatable, with reference values from tenant's Settings/Orders/PO number/Suffixes setting, e.g. https://folio-snapshot.dev.folio.org/settings/orders/suffixes
            • Vendor: Non-repeatable, with reference values.
              • Instead of a dropdown list of reference values, include an "Organization look-up" button below it that allows a search of the Organizations app
              • Vendor field should also be mappable from the MARC record, and FOLIO can lookup the vendor code via CQL language to filter organizations/vendors by code for example like this: /organizations/organizations?query=(((code=AMAZ*)))
              • NOTE: The vendor code lookup should be an exact match for the code, NOT a "begins" search Search should also be case-insensitive, if possible
            • Order type: Default to "One-time" and do not allow it to be edited (like the the Status field in the Invoice field mapping)
            • Acquisitions units: Non-repeatable (BUT multi-select) with reference values from the tenant's Settings/Acquisitions units, e.g. https://folio-snapshot.dev.folio.org/settings/acquisition-units
              • If one value selected, just show that value on the create/edit screen; if more than 1 selected, show as "Main" "Law" (each value in its own quotation marks, separated by a space (the same as the Acq units field in the Invoice field mapping)
            • Assigned to: Non-repeatable, with lookup to Users app, rather than a list of reference values
            • Button with + sign next to Assigned to; when clicked, open User lookup to allow search of the Users app
            • Bill to name: Non-repeatable, with reference values, from tenant's Settings/Tenant/Addresses setting, e.g. https://folio-snapshot.dev.folio.org/settings/tenant-settings/addresses
            • Bill to address: Not mappable
              • If a default value is selected for Bill to name, then show the associated address (from from tenant's Settings/Tenant/Addresses data) in this un-mappable field
            • Ship to name: Non-repeatable, with reference values, from tenant's Settings/Tenant/Addresses setting, e.g. https://folio-snapshot.dev.folio.org/settings/tenant-settings/addresses
            • Ship to address: Not mappable
              • If a default value is selected for Ship to name, then show the associated address (from from tenant's Settings/Tenant/Addresses data) in this un-mappable field
            • Manual: Standard checkbox, default to unchecked
            • Re-encumber: Mappable checkbox , with reference values
              • false
              • true
            • Note: Repeatable, free text (field can use the width of the screen, if possible)
            • Button for Add note
          • Divider line
          • Order line information accordion
          • Item details sub-accordion
            • Title: Non-repeatable, free text
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL title data should come from the Instance title field that was created?
            • Receiving note: Non-repeatable, free text
            • Must acknowledge receiving note: Mappable checkbox, with reference values
              • false
              • true
            • Subscription from: Date field
            • Subscription to: Date field
            • Subscription interval: Non-repeatable number
            • Publication date: Non-repeatable, free text
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL Pub date data should come from the Instance Pub date field that was created?
            • Publisher: Non-repeatable, free text
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL Publisher data should come from the Instance Publisher field that was created?
            • Edition: Non-repeatable, free text
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL Edition data should come from the Instance Edition field that was created?
            • Contributors: Repeatable
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL Contributor data should come from the Instance Contributor field that was created?
              • the following 2 fields are added/removed together as repeatable fields]
              • Contributor: Repeatable, free text
              • Contributor type: Repeatable, with reference values, from the tenant's Settings/Inventory/Instances/Contributor types, e.g. https://folio-snapshot.dev.folio.org/settings/inventory/contributortypes
              • Button for Add contributor
            • Product identifiers:
              • Question for devs: data will come from imported MARC Bib, which is also creating the instance; do we need a way to indicate that the POL Product ID data should come from the Instance Reference Number field that was created?
              • [the following 3 fields are added/removed together as repeatable fields]
              • Product ID: Repeatable, free text
              • Qualifier: Repeatable, free text
              • Product ID type: Non-repeatable, with reference values, from /identifier-types?limit=1000&query=cql.allRecords%3D1%20sortby%20name
              • Button for Add product ID and product ID type
            • Internal note: Non-repeatable, free text (field can use the width of the screen, if possible)
          • Divider line
          • PO line details sub-accordion
          • Divider line
          • Vendor sub-accordion
            • Vendor reference numbers
              • [the following 2 fields are added/removed together as repeatable fields]
              • Vendor reference number: Repeatable, free text
              • Vendor reference type: Repeatable, with reference values, from ??? Get from Thunderjet
              • Button for Add vendor reference number
            • Account number: Non-repeatable, with reference values, from the Accounts section of the tenant's Organization record that was selected as the vendor for the PO, e.g. https://folio-snapshot.dev.folio.org/organizations/view/d0fb5aa0-cdf1-11e8-a8d5-f2801f1b9fd1?limit=50&offset=0&query=gobi Ask Thunderjet - is there an easy way to get this list?
            • Instructions to vendor: Non-repeatable, free text. Field can span more space horizontally, if possible
          • Divider line
          • Cost details sub-accordion
            • Physical unit price: Non-repeatable, number
            • Quantity physical: Non-repeatable, number
            • Additional cost: Non-repeatable, number
            • Currency: Non-repeatable with reference values. Per Thunderjet, currency list is from external lib currency-codes used in stripes-components. https://github.com/folio-org/stripes-components/blob/a21f22f55176472d9e0444eea96f939a2482f320/util/currencies.js Currency selected here controls the currency symbol in the %/$ toggles throughout the rest of the PO line (like the Currency field in the Invoice field mapping profile)
            • Use set exchange rate: Standard checkbox, default to unchecked
            • Set exchange rate: Non-repeatable, number
              • When "Use set exchange rate" is checked, allow edit of this field.
              • When "Use set exchange rate" is unchecked, disallow edit of this field.
              • Or if too complex, always allow edit of the field
            • Electronic unit price: Non-repeatable, number
            • Quantity electronic: Non-repeatable, number
            • Discount: Non-repeatable, number
            • Type: Toggle for %/currency symbol; Default is %. Currency symbol is controlled by the currency selected up higher on the order screen.
          • Divider line
          • Fund distribution sub-accordion
            • [the following 4 fields are added/removed together as repeatable fields]
            • Fund ID: Repeatable, with reference values from the Fund tab of the Finance App, in the format Fund name (Fund code), e.g. African History (AFRICAHIST), in alphabetical order (Reference values are in the same format as the fund field in the Invoice field mapping profile)
            • Expense class: Repeatable, with reference values from Settings/Finance/Expense classes, in the format: Expense class name, e.g. Electronic, in alphabetical order (Reference values are in the same format as the expense class field in the Invoice field mapping profile)
            • Value: Repeatable, number
            • Type: Toggle for %/currency symbol; default is %. Currency symbol is controlled by the currency selected up higher on the order screen, Default is %
            • Button for Add fund distribution
          • Divider line
          • Location sub-accordion
            • [the following 3 fields are added/removed together as repeatable fields]
            • Name (code): Repeatable, with reference values from the tenant's Settings/Tenant/Locations, e.g. https://folio-snapshot.dev.folio.org/settings/tenant-settings/location-locations (use same format as Permanent/Temporary location in Holdings field mapping profile)
            • Quantity physical: Repeatable, number
            • Quantity electronic: Repeatable, number
            • Button for Add location
          • Divider line
          • Physical resource details sub-accordion
            • Material supplier: Non-repeatable, with reference values.
            • NOTE:: Default to the value selected for PO vendor, but allow edit
              • Instead of a dropdown list of reference values, include an "Organization look-up" button below it that allows a search of the Organizations app
              • Material supplier field should also be mappable from the MARC record, and FOLIO can lookup the code via CQL language to filter organizations/vendors by code for example like this: /organizations/organizations?query=(((code=AMAZ*)))
              • NOTE: The organization code lookup should be an exact match for the code, NOT a "begins" search Search should also be case-insensitive, if possible
            • Receipt due: Date field
            • Expected receipt date: Date field
            • Create inventory: Non-repeatable, with reference values from acq-models github repository, https://github.com/folio-org/acq-models/blob/master/mod-orders/schemas/createInventoryType.json
            • Material type: Non-repeatable, with reference values from the tenant's Settings/Inventory/Item/Material types, e.g. https://folio-snapshot.dev.folio.org/settings/inventory/materialtypes (use same format as the Material type field in the Item field mapping profile)
            • Volume: Repeatable, free text
            • Button for Add volume
          • Divider line
          • E-resources details sub-accordion
            • Access provider: Non-repeatable, with reference values.
              • NOTE:: Default to the value selected for PO vendor, but allow edit
              • Instead of a dropdown list of reference values, include an "Organization look-up" button below it that allows a search of the Organizations app
              • Access provider field should also be mappable from the MARC record, and FOLIO can lookup the organization code via CQL language to filter organizations/vendors by code for example like this: /organizations/organizations?query=(((code=AMAZ*)))
              • NOTE: The organization code lookup should be an exact match for the code, NOT a "begins" search Search should also be case-insensitive, if possible
            • Activation status: Standard checkbox, default to unchecked
            • Activation due: Date field
            • Create inventory: Non-repeatable, with reference values from acq-models github repository, https://github.com/folio-org/acq-models/blob/master/mod-orders/schemas/createInventoryType.json
            • Material type: Non-repeatable, with reference values from the tenant's Settings/Inventory/Item/Material types, e.g. https://folio-snapshot.dev.folio.org/settings/inventory/materialtypes (use same format as the Material type field in the Item field mapping profile)
            • Trial: Standard checkbox, default to unchecked
            • Expected activation: Date field
            • User limit: Non-repeatable, number
            • URL: Non-repeatable, free text (can spread input box across the whole line horizontally)
          • Divider line
        • Standard section for connecting action profiles
        • Standard Cancel/Save and close footer

      Scenario 2

      • Ensure automated testing coverage for this new code is 80%+

       

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                Mariia_Aloshyna Mariia Aloshyna
                abreaux Ann-Marie Breaux
                Ann-Marie Breaux Ann-Marie Breaux
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:

                  TestRail: Runs

                    TestRail: Cases