Create a new API for BC Explorer that allows an array of document ids to be passed in. Results return multiple documents.

Background:
ArcelorMittal Dofasco associates all our DMaCs drawings with the specific location that the drawing represents. To accomplish this, all the properties owned by ArcelorMittal Dofasco are sectioned into grids squares, with all our drawings being associated to specific grids.
Using an in-house application (Embedded Services Locate), we allow employees to locate all underground services that are associated within the specified grid areas. Based on the selected area, all the drawings that belong to those grids are displayed to the employee in a report format, so that they could be referenced to provide a site safe excavation clearance, or otherwise provide guidance to execute a safe dig. The coordinates are stored in an external database.


- Currently BlueCielo has an API return the drawing for a single document id. We require the ability to search for drawings by passing in an array of document id's.
o Current Single DocumentID (SIN-SERIAL-SHEET) Lookup: http://dof-ctr-bcexplr/bcenterprise/home.aspx?ViewID=DOC_190AF&DOCFILTER=ca68fb&TAGFILTER=1234&DEFVIEW=THUMBNAIL&NAVSTATE=HIDE&VIEWMODE=DETAILS&ID1=03695900-005-1
o Possible Array DocumentID (SIN-SERIAL-SHEET) Lookup: http://dof-ctr-bcexplr/bcenterprise/home.aspx?ViewID=DOC_190AF&DOCFILTER=ca68fb&TAGFILTER=1234&DEFVIEW=THUMBNAIL&NAVSTATE=HIDE&VIEWMODE=DETAILS&ID1={03695900-001-1,03695900-002-1,03695900-003-1,03695900-004-1,03695900-005-1,03695900-006-1}
o BlueCielo currently has an API setup to accept a single DocumentID, which returns the requested drawing in a variety of different formats. There is also currently the ability to add custom filters to increase the number of DocumentID's accepted, however a new filter would have to be created for every single amount of DocumentID's that could be passed in. Thus, ArcelorMittal Dofasco requires the ability to pass in a list (Array) of DocumentID's, which would return all the requested drawings.
o BC already has an API that returns a single drawing for display. All that would need to be done to fulfill our requirements, would be to create a new API Endpoint that will accept a list (Array) of DocumentID's. Inside the API you would then just loop through the passed in DocumentID's and continually call the pre-existing API to aggregate all the passed in drawings together, for display in the Explorer.

We require the ability to search for drawings by passing in an array of document id's.

Our team contacted BC's R&D department and they provided 2 options (see below). We chose option 1. However, we have no idea if they are working on a new API or not.

Reply received from BC's R&D department :

We need to create a new API.

If this other application can do a POST request we can create an API that takes any number of document ids.

If the ids must be pasted to though the URL query string, we are only restricted by the maximum URL length (2048 for IE).

If the coordinates are stored in SQL, we could even calculate the documents in the selected area using an SQL query.

There is a limit of 2100 arguments in the SQL query.

The customer mentioned 'up to 126' documents.

So if we would say we support up to 200 that seems reasonable.

The preferred option is to pass the IDs in an HTTP POST request so we do not have a limit on the number of IDs.
  • Guest
  • Mar 19 2019
  • Planned
  • Attach files
  • Chris Tsangarides commented
    March 22, 2019 17:42

    Legacy ID: MER-I-31

    Idea created at: 2018-Feb-02

    Referenced customer:

    COMMENTS:

    Rudi Pieters Feb 9, 2018 This feature is scheduled for the 2018R2 release.

  • +1