| Índice |
|---|
Este documento tem objetivo apresentar como é possível obter dados de usuários, marcações, funcionários e dispositivos do Clock in utilizando Named Queries. Para saber mais sobre as Named Queries seguir os seguintes passos:
A Plataforma Carol disponibiliza duas formas de autenticação para uso de rotas privadas para Named Queries: OAuth2 e API Key. Mais detalhes acesse aqui.a documentação da Plataforma Carol conforme a seguir:
A Plataforma Carol disponibiliza a opção do page size / offset.
...
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/<NOME_DA_NAMED_QUERY>
?pageSize=-1'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
Por padrão, Named Queries retornam todos os dados dos Data Models (local onde os dados estão), mas é possível utilizar filtros para obter apenas os dados necessários. No caso abaixo os campos mdmpersonid e mdmname foram utilizados como filtro. Sempre lembrando que os campos do Data Model sempre estão dentro do objeto mdmGoldenFieldAndValues. A Plataforma Carol retorna outros campos que fazem parte da estrutura interna dela mas que não parecem fazer sentido para este caso.
...
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/<NOME_DA_NAMED_QUERY>
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues.mdmpersonid,mdmGoldenFieldAndValues.mdmname'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
Para obter a lista completa de Named Queries disponíveis no ambiente, basta entrar em Explore e depois em Named Queries. A lista será apresentada. Nesta área é possível editar, excluir e incluir novas Named Queries. Sempre lembrando que elas vão retornar os registros dos Data Models. Para saber mais sobre Named Queries acesse aqui.
...
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/userList
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
| Bloco de código |
|---|
- {
"count": 5,
"totalHits": 11,
"took": 12,
"hits": [
{
"mdmGoldenFieldAndValues": {
"mdmshouldsendwelcomeemail": true,
"mdmphonenumber": "1232321",
//....
}
},
{
"mdmGoldenFieldAndValues": {
// ...
}
},
],
"aggs": {}
} |
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/clockinrecordsListByPeriod
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
| Bloco de código |
|---|
Response similar a da consulta de usuários |
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/employeeList
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
| Bloco de código |
|---|
Response similar a da consulta de usuários |
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/deviceList
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>' |
| Bloco de código |
|---|
Response similar a da consulta de usuários |
Para verificar quais são os filtros das Named Queries, basta entrar na área citada anteriormente e executar uma Named Query para testes. Ao executar, a Carol apresentará quais são os filtros. Também é possível adicionar novos filtros. Segue abaixo exemplo de como enviar valores para os filtros via requisições HTTP POST.
...
| Bloco de código |
|---|
- curl -X POST
'https://api.carol.ai/api/v3/queries/named/<NOME_DA_NAMED_QUERY>
?offset=0
&pageSize=5
&fields=mdmGoldenFieldAndValues'
-H 'X-Auth-Key: <KEY>'
-H 'X-Auth-ConnectorId: <CON_ID>'
-d '{ "key1": "value1", "key2": "value2" }' |
...
Segue abaixo um exemplo prático de como testar e usar uma NAMED QUERY, além de dicas de uso.
...
1- Faça Login no seu Ambiente ({organização}.carol.ai/{ambiente});
...
6, 7 e 8- No caso desta NamedQuery (clockinrecordsListByPeriod), ela me permite realizar filtros no Data Model CLOCK IN RECORDS usando os campos de código do dispositivo, período de data da marcação de ponto e a partir de qual número NSR.;
9- Você pode testar a NamedQuery pressionando o botão RUN.
1- Preencho Preencha os filtros desejados e execute a consulta.
1- Consulte/exporte Assim pode consultar/exportar os dados retornados da consulta:
...
Request:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
- curl -X 'POST' \ 'https://totvsclockinapi.carol.ai/api/v3/queries/named/clockinrecordsListByPeriod?indexType=MASTER&offset=0&pageSize=10&sortBy=mdmGoldenFieldAndValues.mdmeventdate&sortOrder=DESC&scrollable=false' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: BearerX-Auth-Key: {seusua chave tokenaqui}' \ -dH 'X-Auth-ConnectorId: {seu ConnectorId aqui}' \ ' |
Response:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
{ "nsrCodecount": 10, "748totalHits": 15646, "deviceCodetook": "BE1C11B2-5DEC-4878-88E6-175981481398"14, "initialDatehits": "2024-08-01T00:00:00.000-03:00", "finalDate": "2024-09-01T00:00:00.000-03:00", }'[ {...} ... ] } |
Request:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
- curl -X 'POST' \
'https://api.carol.ai/api/v3/queries/named/clockinrecordsListByPeriod?indexType=MASTER&offset=0&pageSize=10&sortBy=mdmGoldenFieldAndValues.mdmeventdate&sortOrder=DESC&scrollable=false' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-Auth-Key: {sua chave aqui}' \
-H 'X-Auth-ConnectorId: {seu ConnectorId aqui}' \
-d '{
"nsrCode": "748",
"deviceCode": "BE1C11B2-5DEC-4878-88E6-175981481398",
"initialDate": "2024-08-01T03:00:00 | ||||
| Bloco de código | ||||
{ "count": 6, "totalHits": 6, "took": 4, "hits": [ { "mdmDeleted": false, "mdmSourceOperation": "SQL_PROCESS", "mdmCounterForEntity": 1724761025743000, "mdmGoldenFieldAndValues": { "clockinmode": "1", "smssent": "2024-08-27T03:32:34.990Z", "supervisorcode": "[email protected]", "isautotimezone": "2", "selfclockin": true, "lastgpsdatetime": "2024-08-21T12:15:29.000-03:00", "nsrprocesseddatetime"finalDate": "2024-0809-21T1501T03:2200:00.000-03:00", }' |
Response:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
{ "count": 6, "totalHits": 6, "took": 4, "hits": [25.440Z", "devicetimezonechangeindicator": "1", { "score "mdmDeleted": false, "mdmSourceOperation": "6SQL_PROCESS", "supervisornamemdmCounterForEntity": "[email protected]", "appname": "Clock In", "eventdatestr": "2024-08-21T12:15:00.000-03:00", "updatedatetimeautomatically": false, "lastmomentgpsdatetimeobtained": "2024-08-21T12:15:29.322-03:00", "employeegeofencecoordinatesoptional": "no coordinates", "receiptimage": "https://teste.carol.ai/teste/go/728ywobccj", "mdmname": "Colaborador Exemplo", "devicedescription": "[email protected]", "datetimechanged": false, "image": "https://teste.carol.ai/teste/go/raxoohcav9", "nsrcode": "753",1724761025743000, "mdmGoldenFieldAndValues": { "clockinmode": "1", "smssent": "2024-08-27T03:32:34.990Z", "supervisorcode": "[email protected]", "isautotimezone": "2", "selfclockin": true, "lastgpsdatetime": "2024-08-21T12:15:29.000-03:00", "nsrprocesseddatetime": "2024-08-21T15:22:25.440Z", "devicetimezonechangeindicator": "1", "score": "6", "supervisorname": "[email protected]", "appname": "Clock In", "eventdatestr": "2024-08-21T12:15:00.000-03:00", "updatedatetimeautomatically": false, "lastmomentgpsdatetimeobtained": "2024-08-21T12:15:29.322-03:00", "employeegeofencecoordinatesoptional": "no coordinates", "receiptimage": "https://totvsclockin.carol.ai/teste/go/728ywobccj", "mdmname": "Colaborador Exemplo", "devicedescription": "[email protected]", "datetimechanged": false, "image": "https://totvsclockin.carol.ai/teste/go/raxoohcav9", "nsrcode": "753", "coordinatesaccuracy": 6, "diffgpsdevicetime": "0", "collectiveagreement": "99999999999999999", "gpslevel": "0", "locationcode": "4", "licensestatus": "OK", "mdmStagingAuditId": "f5ac249636ec0e34", "fraudscore": 0.0026708, "statusanalysisdate": "2024-08-21T21:09:10.514Z", "receiptsentmode": "Nothing", "readphonestateenabled": false, "gmt": "-03:00", "devicecode": "BE1C11B2-5DEC-4878-88E6-175981481398", "georeferencestate": "filled", "mdmTaskId": "b0a898893037441fbc3cd42d8353f9c2", "imagehash": "-0.131479, 0.0294967, 0.0692975, -0.0225383, -0.0269747, -0.0752967, -0.0515807, -0.120229, 0.180412, -0.125723, 0.218578, -0.00439189, -0.253444, -0.118369, 0.002121, 0.117364, -0.0208364, -0.0767907, -0.0751632, -0.0915777, 0.0742972, 0.0451878, 0.0465591, 0.0654342, -0.0633498, -0.339759, -0.0660675, -0.115597, 0.02133, -0.0735729, -0.0318694, 0.0118895, -0.103082, -0.113205, 0.0400811, 0.112948, -0.0746193, -0.0700653, 0.198791, -0.00607182, -0.119064, -0.0749938, 0.0507131, 0.272417, 0.158889, 0.0524132, 0.0531848, -0.0839153, 0.15459, -0.277452, 0.152825, 0.0625031, 0.183316, 0.0599122, 0.20305, -0.146557, 0.0588035, 0.193805, -0.266038, 0.158633, 0.077579, -0.0514593, -0.104153, -0.00862041, 0.249977, 0.166787, -0.132382, -0.0749751, 0.200977, -0.136508, -0.062053, 0.0602444, -0.0952025, -0.207354, -0.218461, 0.0460927, 0.363987, 0.223373, -0.219258, 0.00230355, -0.0482604, 0.00519569, 0.0950405, 0.0393352, -0.0476836, -0.0534268, -0.0686621, -0.0298764, 0.111147, 0.0586453, -0.0532365, 0.272703, 0.0270942, -0.0053324, 0.0387958, 0.0122857, -0.130904, -0.0270901, -0.152075, -0.124179, 0.116132, -0.0682318, 0.0681907, 0.0567057, -0.219154, 0.198706, -0.0320844, 0.0369035, 0.0939216, -0.0129052, -0.104225, 0.0190724, 0.131557, -0.237321, 0.196939, 0.105615, 0.103404, 0.166686, 0.040076, 0.0371103, 0.0908808, -0.0865782, -0.173796, -0.0864644, 0.0326179, -0.0310395, 0.0630728, 0.0668265", "isuserinsidegeofenceenum": "1", "statusanalysis": "OK", "externalservicestatuscode": 0, "coordinates": { "lon": -48.38827807460761, "lat": -22.370139551369817 }, "datetimeprovider": "ntp", "fakegpslocation": false, "devicesynchistorycode": "1724253342422", "mdmtaxid": "755", "locationdescription": "Joinville", "clockinsessionstatus": "logged-in", "mdmeventdate": "2024-08-21T15:15:00.000Z", "imei": "", "gmtfromclockinscoordinates": "-03:00", "mdmpersonid": "12345678910" }, "mdmConstraintPending": false, "mdmEntityType": "clockinrecordsGolden", "mdmStagingRecordIds": [ "99eb05dd32446c8dd11d0171d995160e" ], "mdmSourceType": "SQL", "mdmMergePending": false, "mdmLastUpdated": "2024-08-27T12:17:05Z", "mdmTenantId": "1ff0fbe4de2143bbab686413a3c359ca", "mdmMasterCount": 1, "mdmStagingCounter": "1724729567118246", "mdmCreated": "2024-08-27T12:17:05Z", "mdmSourceOperationTaskId": "b0a898893037441fbc3cd42d8353f9c2", "mdmSourceEntityNames": [ "bf2ace1f69f34529850e3b983feb8271_clockinrecords" ], "mdmEntityTemplateId": "7dd4da9d15294d46a6da8e27f179690f", "mdmId": "ca04aa98aed7b20e5eb450a397c7ea99" }, {...}, {...}, {...}, {...}, {...} ], "aggs": {} } |
Request:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
- curl -X 'POST' \
'https://api.carol.ai/api/v3/queries/named/clockinrecordsListByPeriod?indexType=MASTER&offset=0&pageSize=10&sortBy=mdmGoldenFieldAndValues.mdmeventdate&sortOrder=DESC&scrollable=false' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-Auth-Key: {sua chave aqui}' \
-H 'X-Auth-ConnectorId: {seu ConnectorId aqui}' \
-d '{
"nsrCode": "748",
"deviceCode": "BE1C11B2-5DEC-4878-88E6-175981481398",
"initialDate": "2024-08-01T03:00:00.000-03:00",
"finalDate": "2024-09-01T03:00:00.000-03:00",
}' |
Response:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
{ "count": 6, "totalHits": 6, "took": 9, "hits": [ { "mdmGoldenFieldAndValues": { "coordinatesaccuracy": 6eventdatestr": "2024-08-14T17:40:00.000-03:00", "diffgpsdevicetimemdmeventdate": "0",2024-08-14T20:40:00.000Z" } "collectiveagreement": "99999999999999999" }, { "gpslevelmdmGoldenFieldAndValues": "0",{ "locationcodeeventdatestr": "42024-08-14T17:42:00.000-03:00", "licensestatusmdmeventdate": "OK",2024-08-14T20:42:00.000Z" } "mdmStagingAuditId": "f5ac249636ec0e34" }, { "fraudscoremdmGoldenFieldAndValues": 0.0026708,{ "statusanalysisdateeventdatestr": "2024-08-21T2121T08:0949:10.514Z00.000-03:00", "receiptsentmodemdmeventdate": "Nothing",2024-08-21T11:49:00.000Z" } "readphonestateenabled": false}, { "gmtmdmGoldenFieldAndValues": "-03:00",{ "devicecodeeventdatestr": "BE1C11B22024-5DEC-4878-88E6-17598148139808-21T08:55:00.000-03:00", "georeferencestatemdmeventdate": "filled", 2024-08-21T11:55:00.000Z" } "mdmTaskId": "b0a898893037441fbc3cd42d8353f9c2" }, { "imagehash": "-0.131479, 0.0294967, 0.0692975, -0.0225383, -0.0269747, -0.0752967, -0.0515807, -0.120229, 0.180412, -0.125723, 0.218578, -0.00439189, -0.253444, -0.118369, 0.002121, 0.117364, -0.0208364, -0.0767907, -0.0751632, -0.0915777, 0.0742972, 0.0451878, 0.0465591, 0.0654342, -0.0633498, -0.339759, -0.0660675, -0.115597, 0.02133, -0.0735729, -0.0318694, 0.0118895, -0.103082, -0.113205, 0.0400811, 0.112948, -0.0746193, -0.0700653, 0.198791, -0.00607182, -0.119064, -0.0749938, 0.0507131, 0.272417, 0.158889, 0.0524132, 0.0531848, -0.0839153, 0.15459, -0.277452, 0.152825, 0.0625031, 0.183316, 0.0599122, 0.20305, -0.146557, 0.0588035, 0mdmGoldenFieldAndValues": { "eventdatestr": "2024-08-21T08:57:00.000-03:00", "mdmeventdate": "2024-08-21T11:57:00.000Z" } }, { "mdmGoldenFieldAndValues": { "eventdatestr": "2024-08-21T12:15:00.000-03:00", "mdmeventdate": "2024-08-21T15:15:00.000Z" } } ], "aggs": {} } |
Request:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
- curl -X 'POST' \
'https://api.carol.ai/api/v4/queries/named/clockinrecordsListByPeriod?indexType=MASTER&offset=0&pageSize=10&sortBy=mdmGoldenFieldAndValues.mdmeventdate&sortOrder=ASC&scrollable=false&fields=mdmGoldenFieldAndValues.eventdatestr%2CmdmGoldenFieldAndValues.mdmeventdate' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-Auth-Key: {sua chave aqui}' \
-H 'X-Auth-ConnectorId: {seu ConnectorId aqui}' \
-d '{
"nsrCode": "748",
"deviceCode": "BE1C11B2-5DEC-4878-88E6-175981481398",
"initialDate": "2024-08-01T03:00:00.000-03:00",
"finalDate": "2024-09-01T03:00:00.000-03:00",
}' |
Response:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
{ "count": 6, "totalHits": 6, "took": 9, "hits": [ { "mdmGoldenFieldAndValues.193805, -0.266038, 0.158633, 0.077579, -0.0514593, -0.104153, -0.00862041, 0.249977, 0.166787, -0.132382, -0.0749751, 0.200977, -0.136508, -0.062053, 0.0602444, -0.0952025, -0.207354, -0.218461, 0.0460927, 0.363987, 0.223373, -0.219258, 0.00230355, -0.0482604, 0.00519569, 0.0950405, 0.0393352, -0.0476836, -0.0534268, -0.0686621, -0.0298764, 0.111147, 0.0586453, -0.0532365, 0.272703, 0.0270942, -0.0053324, 0.0387958, 0.0122857, -0.130904, -0.0270901, -0.152075, -0.124179, 0.116132, -0.0682318, 0.0681907, 0.0567057, -0.219154, 0.198706, -0.0320844, 0.0369035, 0.0939216, -0.0129052, -0.104225, 0.0190724, 0.131557, -0.237321, 0.196939, 0.105615, 0.103404, 0.166686, 0.040076, 0.0371103, 0.0908808, -0.0865782, -0.173796, -0.0864644, 0.0326179, -0.0310395, 0.0630728, 0.0668265", "isuserinsidegeofenceenum": "1", "statusanalysis": "OK", "externalservicestatuscode": 0, "coordinates": { "loneventdatestr": -48.38827807460761"2024-08-14T17:40:00.000-03:00", "latmdmeventdate": -22.370139551369817 "2024-08-14T20:40:00.000Z" } }, { "datetimeprovidermdmGoldenFieldAndValues": "ntp",{ "fakegpslocationeventdatestr": false"2024-08-14T17:42:00.000-03:00", "devicesynchistorycodemdmeventdate": "1724253342422",2024-08-14T20:42:00.000Z" } "mdmtaxid": "755" }, { "locationdescriptionmdmGoldenFieldAndValues": "Joinville",{ "clockinsessionstatus": "logged-in"eventdatestr": "2024-08-21T08:49:00.000-03:00", "mdmeventdate": "2024-08-21T1521T11:1549:00.000Z", } "imei": "" }, "gmtfromclockinscoordinates": "-03:00", { "mdmpersonidmdmGoldenFieldAndValues": "12345678910"{ }, "mdmConstraintPendingeventdatestr": false"2024-08-21T08:55:00.000-03:00", "mdmEntityTypemdmeventdate": "clockinrecordsGolden",2024-08-21T11:55:00.000Z" "mdmStagingRecordIds": [} "99eb05dd32446c8dd11d0171d995160e"}, ],{ "mdmSourceTypemdmGoldenFieldAndValues": "SQL",{ "mdmMergePendingeventdatestr": false"2024-08-21T08:57:00.000-03:00", "mdmLastUpdatedmdmeventdate": "2024-08-27T1221T11:1757:05Z00.000Z", "mdmTenantId": "1ff0fbe4de2143bbab686413a3c359ca", } }, "mdmMasterCount": 1, { "mdmStagingCountermdmGoldenFieldAndValues": "1724729567118246",{ "mdmCreatedeventdatestr": "2024-08-27T12:17:05Z21T12:15:00.000-03:00", "mdmSourceOperationTaskIdmdmeventdate": "b0a898893037441fbc3cd42d8353f9c2", "mdmSourceEntityNames": [2024-08-21T15:15:00.000Z" "bf2ace1f69f34529850e3b983feb8271_clockinrecords"} } ], "mdmEntityTemplateId": "7dd4da9d15294d46a6da8e27f179690f", "mdmId": "ca04aa98aed7b20e5eb450a397c7ea99" }, {...}, {...}, {...}, {...}, {...} ], "aggs": {} }"aggs": {} } |