openapi: 3.0.3 info: title: Generic Database API Service version: "2.0.0" paths: # -------------------------------------------------------------------------------------------------- /pdb/v2/baseItem/{articleNumber}: get: tags: [ "Regular" ] operationId: Regular.baseItem summary: Returns baseItem entries description: | ``` DATABASETAGBEGIN pdb_el_reader1 DATABASETAGEND STATEMENTBEGIN SELECT Artikelcode AS articleNumber, Art AS category, bezeichnung AS description FROM stammdaten WHERE Artikelcode = @articleNumber STATEMENTEND ``` parameters: - name: articleNumber in: path required: true schema: type: string responses: 200: description: Here are your baseItem items content: application/json: schema: type: array items: $ref: "#/components/schemas/baseItem" 400: $ref: "#/components/responses/clientSideError" 500: $ref: "#/components/responses/serverSideError" # -------------------------------------------------------------------------------------------------- /pdb/v2/productionOrderItem/{productionOrder}: get: tags: [ "Regular" ] operationId: Regular.productionOrderItem summary: Returns productionOrderItem entries description: | ``` DATABASETAGBEGIN pdb_el_reader1 DATABASETAGEND STATEMENTBEGIN SELECT CAST(auftraege.produktionsauftrag AS INT) AS productionOrder ,auftraege.artikelcode AS articleCode ,(CASE WHEN ISNULL(anonyme_cg_geraete.C_Nummer) THEN FALSE ELSE TRUE END) AS isAnonymous ,(CASE WHEN ISNULL(anonyme_cg_geraete.Artikelcode) THEN (CASE WHEN auftraege.C_Nummer = \"\" THEN NULL ELSE auftraege.C_Nummer END) ELSE anonyme_cg_geraete.C_Nummer END) AS cgNumber ,auftraege.stueckzahl AS numberOfPieces ,auftraege.IX AS bomIndex ,auftraege.referenz_dokument AS referenceDocument FROM auftraege LEFT JOIN anonyme_cg_geraete ON auftraege.artikelcode = anonyme_cg_geraete.Artikelcode WHERE auftraege.produktionsauftrag = @productionOrder STATEMENTEND ``` parameters: - name: productionOrder in: path required: true schema: type: integer responses: 200: description: Here are your productionOrderItem items content: application/json: schema: type: array items: $ref: "#/components/schemas/productionOrderItem" 400: $ref: "#/components/responses/clientSideError" 500: $ref: "#/components/responses/serverSideError" # -------------------------------------------------------------------------------------------------- /pdb/v2/converterItem/{serialNumber}: get: tags: [ "Regular" ] operationId: Regular.converterItem summary: Returns converterItem entries description: | ``` DATABASETAGBEGIN pdb_el_reader1 DATABASETAGEND STATEMENTBEGIN SELECT geraete_daten.seriennummer AS serialNumber ,CAST(geraete_daten.produktionsauftrag AS INT) AS productionOrder ,(CASE WHEN geraete_daten.sn_lp1 = 0 THEN NULL ELSE geraete_daten.sn_lp1 END) AS snPcb1 ,(CASE WHEN geraete_daten.sn_lp2 = 0 THEN NULL ELSE geraete_daten.sn_lp2 END) AS snPcb2 ,(CASE WHEN geraete_daten.sn_lp3 = 0 THEN NULL ELSE geraete_daten.sn_lp3 END) AS snPcb3 ,(CASE WHEN geraete_daten.sn_lp4 = 0 THEN NULL ELSE geraete_daten.sn_lp4 END) AS snPcb4 ,(CASE WHEN geraete_daten.sn_lp5 = 0 THEN NULL ELSE geraete_daten.sn_lp5 END) AS snPcb5 ,(CASE WHEN geraete_daten.sn_lp6 = 0 THEN NULL ELSE geraete_daten.sn_lp6 END) AS snPcb6 ,(CASE WHEN geraete_daten.sn_lp7 = 0 THEN NULL ELSE geraete_daten.sn_lp7 END) AS snPcb7 ,(CASE WHEN geraete_daten.sn_lp8 = 0 THEN NULL ELSE geraete_daten.sn_lp8 END) AS snPcb8 ,(CASE WHEN geraete_daten.sn_lp9 = 0 THEN NULL ELSE geraete_daten.sn_lp9 END) AS snPcb9 ,(CASE WHEN geraete_daten.sn_lp10 = 0 THEN NULL ELSE geraete_daten.sn_lp10 END) AS snPcb10 ,(CASE WHEN geraete_daten.ERev_geplant = \"\" THEN NULL ELSE geraete_daten.ERev_geplant END) AS erPlanned ,(CASE WHEN geraete_daten.ERev_gefertigt = \"\" THEN NULL ELSE geraete_daten.ERev_gefertigt END) AS erProduced ,(CASE WHEN ISNULL(geraete_daten.ausliefer_datum) THEN FALSE ELSE TRUE END) AS isRework ,auftraege.artikelcode AS articleCode ,(CASE WHEN ISNULL(anonyme_cg_geraete.C_Nummer) THEN FALSE ELSE TRUE END) AS isAnonymous ,(CASE WHEN ISNULL(anonyme_cg_geraete.Artikelcode) THEN (CASE WHEN auftraege.C_Nummer = \"\" THEN NULL ELSE auftraege.C_Nummer END) ELSE anonyme_cg_geraete.C_Nummer END) AS cgNumber ,(CASE WHEN ISNULL(ems.Seriennummer) THEN auftraege.IX ELSE ems.Equi_index END) AS bomIndex ,(CASE WHEN ISNULL(ems.Seriennummer) THEN FALSE ELSE TRUE END) AS hasEmsUpdate ,FALSE AS isTestConverter ,geraete_daten.montagedatum AS initialTestDate ,(CASE WHEN geraete_daten.ergebnis_erstinbetriebnahme = \"PASS\" THEN TRUE ELSE FALSE END) AS initialTestResult ,geraete_daten.hv_test_datum AS hvTestDate ,(CASE WHEN geraete_daten.hv_test_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS hvTestResult ,geraete_daten.temp_test_datum AS temperatureTestDate ,(CASE WHEN geraete_daten.temp_test_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS temperatureTestResult ,geraete_daten.kalibrierung_datum AS calibrationDate ,(CASE WHEN geraete_daten.kalibrierung_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS calibrationResult ,geraete_daten.ausliefer_datum AS deliveryDate FROM geraete_daten JOIN auftraege ON geraete_daten.produktionsauftrag = auftraege.produktionsauftrag LEFT JOIN anonyme_cg_geraete ON auftraege.artikelcode = anonyme_cg_geraete.Artikelcode LEFT JOIN ems ON geraete_daten.seriennummer = ems.Seriennummer WHERE geraete_daten.seriennummer = @serialNumber STATEMENTEND ``` parameters: - name: serialNumber in: path required: true schema: type: integer responses: 200: description: Here are your converterItem items content: application/json: schema: type: array items: $ref: "#/components/schemas/converterItem" 400: $ref: "#/components/responses/clientSideError" 500: $ref: "#/components/responses/serverSideError" # -------------------------------------------------------------------------------------------------- /pdb/v2/pcbItem: get: tags: [ "Regular" ] operationId: Regular.pcbItem summary: Returns pcbItem entries description: | ``` DATABASETAGBEGIN pdb_el_reader1 DATABASETAGEND BINDINGHINTBEGIN stringreplacement BINDINGHINTEND STATEMENTBEGIN SELECT sn.seriennummer AS serialNumber ,CAST(sn.produktionsauftrag AS INT) AS productionOrder ,sn.n AS batchIndex ,(CASE WHEN auftraege.artikelcode LIKE 'T%' THEN CAST(SUBSTRING(auftraege.artikelcode, 2) AS INT) ELSE CAST(auftraege.artikelcode AS INT) END) AS articleCode ,(CASE WHEN ISNULL(ems.Seriennummer) THEN auftraege.IX ELSE ems.Equi_index END) AS bomIndex ,(CASE WHEN ISNULL(ems.Seriennummer) THEN FALSE ELSE TRUE END) AS hasEmsUpdate ,stammdaten.bezeichnung AS description ,(CASE WHEN modulindex.modulindex = \"\" THEN NULL ELSE modulindex.modulindex END) AS moduleIndex FROM sn JOIN auftraege ON sn.produktionsauftrag = auftraege.produktionsauftrag JOIN stammdaten ON auftraege.artikelcode = stammdaten.Artikelcode LEFT JOIN ems ON sn.seriennummer = ems.Seriennummer LEFT JOIN modulindex ON sn.seriennummer = modulindex.sn_lp WHERE sn.seriennummer in (@serialNumbers) STATEMENTEND ``` parameters: - name: serialNumbers in: query required: true schema: type: array items: type: integer responses: 200: description: Here are your pcbItem items content: application/json: schema: type: array items: $ref: "#/components/schemas/pcbItem" 400: $ref: "#/components/responses/clientSideError" 500: $ref: "#/components/responses/serverSideError" components: responses: clientSideError: description: There is something wrong with the data you sent, look into the response object for details content: application/json: schema: $ref: "#/components/schemas/errorResultObject" serverSideError: description: Internal Server Error, look into the response object for details content: application/json: schema: $ref: "#/components/schemas/errorResultObject" schemas: errorResultObject: description: Object returned in case of an error properties: errorCode: description: repeat the http error code type: integer serviceErrorCode: description: service-specific error code type: integer errorMessage: description: human-readable error message type: string errorInfoURL: description: URL to some more information on the error type: string offensiveData: description: Input data which causes this error type: string caughtException: description: caught exception as a string type: string caughtExceptionMessage: description: message of caught exception type: string # -------------------------------------------------------------------------------------------------- baseItem: description: Selected columns of the stammdaten table from pdb_el type: object properties: articleNumber: type: string nullable: true category: type: string nullable: true description: type: string # -------------------------------------------------------------------------------------------------- productionOrderItem: description: Selected columns of the auftraege table from pdb_el type: object properties: productionOrder: type: integer nullable: true articleCode: type: string nullable: true isAnonymous: type: boolean nullable: true cgNumber: type: string nullable: true numberOfPieces: type: integer nullable: true bomIndex: type: string nullable: true referenceDocument: type: string nullable: true # -------------------------------------------------------------------------------------------------- converterItem: description: converter items selected by serial number type: object properties: serialNumber: type: integer nullable: true productionOrder: type: integer nullable: true snPcb1: type: integer nullable: true snPcb2: type: integer nullable: true snPcb3: type: integer nullable: true snPcb4: type: integer nullable: true snPcb5: type: integer nullable: true snPcb6: type: integer nullable: true snPcb7: type: integer nullable: true snPcb8: type: integer nullable: true snPcb9: type: integer nullable: true snPcb10: type: integer nullable: true erPlanned: type: string nullable: true erProduced: type: string nullable: true isRework: type: boolean nullable: true articleCode: type: string nullable: true isAnonymous: type: boolean nullable: true cgNumber: type: string nullable: true bomIndex: type: string nullable: true hasEmsUpdate: type: boolean nullable: true isTestConverter: type: boolean nullable: true initialTestDate: type: dateTime nullable: true initialTestResult: type: boolean nullable: true hvTestDate: type: dateTime nullable: true hvTestResult: type: boolean nullable: true temperatureTestDate: type: dateTime nullable: true temperatureTestResult: type: boolean nullable: true calibrationDate: type: dateTime nullable: true deliveryDate: type: dateTime nullable: true # -------------------------------------------------------------------------------------------------- pcbItem: description: pcb items selected by serial number type: object properties: serialNumber: type: integer nullable: true productionOrder: type: integer nullable: true batchIndex: type: integer nullable: true articleCode: type: integer format: int64 nullable: true bomIndex: type: string nullable: true hasEmsUpdate: type: boolean nullable: true description: type: string nullable: true moduleIndex: type: string nullable: true