SMJD1000 - SMmanage – John Deere
O processo SMManage é responsável pela geração mensal das informações de Pós Vendas (Oficina) do concessionário para envio à montadora John Deere.
Essas informações são geradas de forma individual para cada empresa do grupo em um arquivo, conforme layout SMManage e enviadas à montadora John Deere através do processo de comunicação DTF
O programa permitirá que seja gerado o arquivo de acordo com o período escolhido na tela e retorna as informações das empresas processadas e total dos registros gerados.
Período de Geração: Deverá ser informado o período mensal de geração do arquivo, no formato "mm-aaaa". Por padrão será sugerido o período atual e será permitido que o usuário informe qualquer período mensal válido, desde que seja menor ou igual ao período atual.
CNPJ Fornecedor: Deverá ser informado o CNPJ da montadora responsável pelos serviços (FORA1000). Esse CNPJ informado será utilizado para distinguir os serviços que "Estão" na tabela de tempo padrão de reparo (que possuam esse CNPJ), e os estão estão "fora" da tabela de Tempo Padrão de Reparo (não possuem esse CNPJ).
Último dia útil: Após informado o período de geração deverá ser mostrado o último dia útil do mês em referência.
Empresas Geradas: Durante o processamento deverá ser mostrado número de empresas geradas. Este processo deverá gerar informações de todas as empresas do grupo, gerando registros separados para cada empresa.
Registros Gerados: Durante o processamento deverá ser mostrado número do registro que estiver sendo gerado.
As informações geradas no arquivo SMmanage são baseados nas especificações exigidas no layout. Essas informações estão detalhadas abaixo.
Estarão disponíveis nesta tela os seguintes botões, permitindo a navegação:
- Concluir: Confirma o processamento/ação.
- Interromper: Interrompe o processo.
- Documentação: Acesso à documentação do programa.
- Sair: Finaliza as atividades.
Layout do arquivo SMmanage:
Record AA: (Standard Job Pricing Performance)
Column | Length | Type | Field Name | Description | M/O | Audit | Validation | Considerações Linx |
1 | 1 | Character | Record Code |
| M | Y | "A" identifies an SMMANAGE record | Fixo "A" |
2-3 | 2 | Character | Main account 1-2 | First two bytes of the main DTF/poll account | M | Y |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
4-5 | 2 | Character | Unit Location Code | Static value | M | Y | "00" | Fixo "00" |
6-9 | 4 | Character | Main account 3-6 | Last four bytes of the main DTF/poll account | M | N |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
10 | 1 | Character | Record ID | Static value | M | Y | "A" | Fixo "A" |
11-12 | 2 | Numeric | Reported Month | The calendar month being reported | M | Y | "01" = January | Mês base informações |
13-16 | 4 | Numeric | Reported Year | The calendar year being reported | M | Y | "2009" = 2009 | Ano base informações |
17-19 | 3 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
20-21 | 2 | Character | Source account 1- | First two bytes of the source account | M | N |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
22 | 1 | Character | Type Record | Static value | M | Y | "P" | Fixo "P" |
23-26 | 4 | Character | Source account 3- | Last four bytes of the source account | M | Y |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
27-28 | 2 | Character | Version | Static value | M | N | "01" | Fixo "01" |
29-34 | 6 | Numeric | Total invoiced | The total number of jobs invoiced | M | N | One invoiced repair order that | Quantidade de linhas de serviços lançadas nas OS |
35-40 | 6 | Numeric | Total invoiced jobs with specific | The total number of jobs invoiced that were assigned specific job codes | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços que estão na tabela de tempo padrão de reparo. Obs.: Baseado no CNPJ do fornecedor informado. |
41-46 | 6 | Numeric | Total invoiced | The total number of jobs invoiced that | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços fora da tabela de tempo padrão de reparo. Obs.: Baseado no CNPJ do fornecedor informado. |
47-52 | 6 | Numeric | Total invoiced | The total number of jobs invoiced that | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços que estão na tabela de tempo padrão de reparo, cujo tempo padrão é igual ao tempo vendido ao cliente. Obs.: Baseado no CNPJ do fornecedor informado. |
53-58 | 6 | Numeric | Total invoiced | The total number of jobs invoiced that | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços que estão na tabela de tempo padrão de reparo, cujo tempo padrão é diferente do tempo vendido ao cliente. Obs.: Baseado no CNPJ do fornecedor informado. |
59-64 | 6 | Numeric | Total invoiced | The total number of jobs invoiced that | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços fora da tabela de tempo padrão de reparo, cujo tempo padrão é igual ao tempo vendido ao cliente. Obs.: Baseado no CNPJ do fornecedor informado. |
65-70 | 6 | Numeric | Total invoiced | The total number of jobs invoiced that | M | N |
| Quantidade de linhas de serviços lançadas nas OS FATURADAS, serviços fora da tabela de tempo padrão de reparo, cujo tempo padrão é diferente do tempo vendido ao cliente. Obs.: Baseado no CNPJ do fornecedor informado. |
71-78 | 8 | Character | The date of this data snapshot | The dealer month-end date for this monthly data summary | M | N | YYYYMMDD | Último dia útil do mês para o revendedor. |
79-80 | 2 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
Record AB: (Service Sales Performance)
Column | Length | Type | Field Name | Description | M/O | Audit | Validation | Considerações Linx |
1 | 1 | Character | Record Code | Static value | M | Y | "A" | Fixo "A" |
2-3 | 2 | Character | Main account 1-2 | First two bytes of the main DTF/poll | M | Y |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
4-5 | 2 | Character | Unit Location Code | Static value | M | Y | "00" | Fixo "00" |
6-9 | 4 | Character | Main account 3-6 | Last four bytes of the main DTF/poll | M | N |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
10 | 1 | Character | Record ID | Static value | M | Y | "B" | Fixo "B" |
11-16 | 6 | Numeric | Hours available for | Total hours available for technicians to work on jobs | M | N | Vacation, sick time, holidays, etc | Total de horas disponíveis para trabalho, já descontadas as horas improdutivas. |
17-19 | 3 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
20-21 | 2 | Character | Source account 1-2 | First two bytes of the source account | M | N |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
22 | 1 | Character | Type Record | Static value | M | Y | "P" | Fixo "P" |
23-26 | 4 | Character | Source account 3-6 | Last four bytes of the source account | M | Y |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
27-32 | 6 | Numeric | Hours worked | Total hours that technicians spent clocked-in (working) on invoiced jobs | M | N |
| Total de horas trabalhadas e apontadas em trabalhos faturados. |
33-38 | 6 | Numeric | Delay hours | Total delay hours logged on invoices jobs | M | N |
| Soma de todos os tempos de parada de serviços por falta de peças, e outros motivos técnicos a serem informados pela JD.. Verificar outros tipos de parada de serviços e enviar para seleção. enviar para JD para seleção listar |
39-44 | 6 | Numeric | Rework hours | Total rework hours recorded on invoiced jobs | M | N |
| Total de horas trabalhadas e apontadas em OS de retrabalho. |
45-50 | 6 | Numeric | Hours over | The sum of the differences between Hours Worked and Estimated Hours for invoiced jobs that had Estimated Hours and where the Hours Worked on the job exceeded the Estimated Hours for the job | M | N |
| Total de horas trabalhadas e apontadas em trabalhos faturados, que excederam o tempo padrão. |
51-55 | 5 | Numeric | Other hours | Total other (non-revenue) hours on invoiced jobs | M | N |
| Total de horas trabalhadas em OS internas |
56-80 | 25 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
Record AC: (Operating Performance)
Column | Length | Type | Field Name | Description | M/O | Audit | Validation | Considerações Linx |
1 | 1 | Character | Record Code | Static value | M | Y | "A" | Fixo "A" |
2-3 | 2 | Character | Main account 1-2 | First two bytes of the main DTF/poll | M | Y |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
4-5 | 2 | Character | Unit Location Code | Static value | M | Y | "00" | Fixo "00" |
6-9 | 4 | Character | Main account 3-6 | Last four bytes of the main DTF/poll account | M | N |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
10 | 1 | Character | Record ID | Static value | M | Y | "C" | Fixo "C" |
11-16 | 6 | Numeric | Total hours sold | Total hours invoiced on retail job types, excluding rework | M | N |
| Total de horas faturadas a cliente |
17-19 | 3 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
20-21 | 2 | Character | Source account 1-2 | First two bytes of the source account | M | N |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
22 | 1 | Character | Type Record | Static value | M | Y | "P" | Fixo "P" |
23-26 | 4 | Character | Source account 3-6 | Last four bytes of the source account | M | Y |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
27-32 | 6 | Numeric | Net hours worked | Total hours worked on invoiced retail job types, excluding delay hours and other (non-revenue) hours | M | N |
| Total de horas trabalhadas em serviços faturados ao cliente |
33-80 | 48 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
Record AD: (WIP Performance)
Column | Length | Type | Field Name | Description | M/O | Audit | Validation | Considerações Linx |
1 | 1 | Character | Record Code | Static value | M | Y | "A" | Fixo "A" |
2-3 | 2 | Character | Main account 1-2 | First two bytes of the main DTF/poll | M | Y |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
4-5 | 2 | Character | Unit Location Code | Static value | M | Y | "00" | Fixo "00" |
6-9 | 4 | Character | Main account 3-6 | Last four bytes of the main DTF/poll | M | N |
| O Main Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-MATRIZ". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
10 | 1 | Character | Record ID | Static value | M | Y | "D" | Fixo "D" |
11-18 | 8 | Numeric | Total WIP labor $ | Total value of the labor, at cost, posted to WIP jobs at month end | M | Y |
| Valor Total R$ dos serviços vendidos ao cliente sem faturamento realizado. |
19 | 1 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
20-21 | 2 | Character | Source account 1-2 | First two bytes of the source account | M | N |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os dois primeiros bytes então se o main account for "201337" é montado "20". |
22 | 1 | Character | Type Record | Static value | M | Y | "P" | Fixo "P" |
23-26 | 4 | Character | Source account 3-6 | Last four bytes of the source account | M | Y |
| O Source Account é o campo "Filial Integração" do cadastro (cada0900) onde o código de integração for "JD-FILIAL". Como são somente os quatro últimos bytes então se o main account for "201337" é montado "1337". |
27-34 | 8 | Numeric | Total WIP $ at cost | Total value of WIP retail jobs, at cost, at month end | M | N |
| Valor a preço de custo (gerencial) dos serviços da OS (tempo vendido * preço de custo MO) + Peças concluídas e ainda não Faturadas. |
35-43 | 9 | Numeric | Last-12 months | Total COS for labor on invoiced jobs for the last-12 months | M | Y |
| Total do custo das vendas (gerencial) dos serviços da OS faturadas (tempo vendido * preço de custo MO). Soma dos últimos 12 meses. |
44-52 | 9 | Numeric | Last-12 months | Total COS for service on invoiced retail jobs for the last 12 months | M | Y |
| Total do custo das vendas (gerencial) dos serviços + Peças da OS faturadas (tempo vendido * preço de custo MO). Soma dos últimos 12 meses. Somente faturados a clientes. |
53-56 | 4 | Numeric | Average Billing | The average number of days between the Date of Last Labor Posting and the Invoice Date for jobs closed this month. | M | Y |
| Número médio de dias entre a conclusão do último serviço da OS e o faturamento da OS (fechados no mês). |
57-64 | 8 | Numeric | Aged WIP Labor $ | Labor value, at cost, posted to aged WIP retail jobs at month-end | M | Y | See definition of 'Aged WIP' in Special | Valor a preço de custo (gerencial) dos serviços da OS (tempo vendido * preço de custo MO) concluídas a mais de 14 dias e ainda não encerradas/faturadas no mês de referência. Somente OS de clientes. Excluídos serviços de terceiros. |
65-72 | 8 | Numeric | Aged WIP Total $ | Total value, at cost, of aged WIP retail jobs at month-end | M | Y | See definition of 'Aged WIP' in Special | Valor a preço de custo (gerencial) dos serviços da OS (tempo vendido * preço de custo MO) + Peças concluídas a mais de 14 dias e ainda não encerradas/faturadas. Somente OS de clientes. |
73-80 | 8 | Character | Filler | Static value | M | N | Spaces | Fixo espaços |
O padrão de nomenclatura do arquivo SMmanage segue o padrão definido na documentação relativa ao processo de comunicação DTF –John Deere, conforme abaixo:
O processo do SMmanage contém duas particularidades, a primeira é que deverá ser disponibilizada a opção de geração do processo de forma automática pelo ROBO (sem intervenção do usuário) descrita abaixo no processo "Ativação de Crontab para DMS LinxMaq". Neste caso será utilizado como período de geração o período anterior à data corrente. Exemplo: Data corrente 01/02/2015 e período considerado para a geração do relatório 2015-01. Para utilização desta opção, o usuário deverá parametrizar no CRON da máquina a execução do processo na madrugada do primeiro dia de cada mês.
A segunda é que após a geração do arquivo o sistema deverá enviá-lo automaticamente para o diretório onde o programa responsável pela comunicação com a montadora está configurado para ler o arquivo. A configuração desse processo está descrita em "Configuração do DTF para transferência automática do arquivo gerado".
Configuração do DTF para transferência automática do arquivo gerado:
Para realizar a transferência automática do arquivo SMM, existem duas pré-condições:
- É necessário utilizar uma máquina servidora para configurar uma tarefa do Windows. Exemplo: Uma máquina servidora de Nota Fiscal Eletrônica.
- É necessário que a máquina utilizada tenha instalado o programa de DTF responsável pela comunicação com a montadora (esse programa é de responsabilidade da John Deere).
Antes de configurar a tarefa do Windows é necessário:
- Baixe o arquivo smm_upload.bat (clicand o aqui);
- Procure pela linha _\\srvsisdia\intfabrica\smm_ e confira se esse é o caminho onde o programa gera o arquivo SMmanage, lembrando que este diretório deverá ser o mesmo informado no ("COPE0100").
- Procure pela linha C:\APPS\JDIS\PROG\COMM\UPLOAD e confira se esse é o diretório onde o programa responsável pela comunicação com a montadora irá lê-lo.
- Procure pela linha C:\APPS\JDIS\PROG\COMM\internet_poll.exe –p e confira se esse é o diretório onde está o arquivo internet_poll.exe. Esse é o arquivo DTF da JD responsável pela comunicação com a montadora.
- Salve o arquivo smm_upload.bat após editado e salve-o no diretório C:\APPS\JDIS\PROG\COMM, lembrando que esse diretório é fixo por isso mesmo que ele não exista será necessário criá-lo para armazenar o bat.
Para configurar a tarefa do Windows é necessário:
- Na máquina servidora escolhida vá até Painel de Controle -> Sistema e Segurança -> Ferramentas Administrativas, e escolha a opção "Agendador de Tarefas".
- No menu "Ações" à direita escolha a opção "Criar Tarefa Básica..."
- Coloque o nome e a descrição para a tarefa e clique em "Avançar".
- Escolha o período que deseja que a tarefa seja executada. Normalmente será a opção "Diariamente" e clique em "Avançar".
- Informe o período inicial e a hora que será executada e clique em "Avançar".
- Escolha a opção "Iniciar um programa" e clique em "Avançar".
- Procure o diretório onde foi salvo o arquivo "smm_upload.bat". Exemplo: C:\APPS\JDIS\PROG\COMM\smm_upload.bat, e clique em "Avançar".
- Antes de concluir confira os dados, se estiver tudo correto clique em "Concluir".
Ativação de Crontab para DMS LinxMaq
- Conecte-se ao servidor SISDIA com o usuário root, através de uma ferramenta de transferência de arquivos entre Windows e Linux;
- Obtenha o shell (clicando aqui).
- Descompactar o arquivo que foi recepcionado para obter o script Run_SMJD1000.sh. Transfira o script Run_SMJD1000.sh da estação Windows para o servidor SISDIA para o diretório /root/bin;
- Entre no servidor SISDIA via putty usando o usuário root;
5. Vá até o diretório /root/bin e edite o arquivo Run_SMJD1000.sh;
Obs: Somente edite o arquivo pelo ambiente Linux, pois se editar no ambiente Windows o arquivo fica com caracteres não aceitos no Linux.
Para editar digite: vi Run_SMJD1000.sh
5.1. Na linha 16, definir o diretório da base do Sisdia que será utilizada. Substituir a palavra: BASE_SISDIA, pelo diretório da base que será utilizada. Por exemplo: /sisdia/SisdiaEvolution , /sisdia/treino, etc.
5.2. Na linha 30, definir o nome da instância que será utilizada. Substituir a palavra OL_INSTANCIA, pelo nome da instância que será utilizada. Por exemplo: ol_standard, ol_treino, etc.
5.3. Na linha 58, definir o diretório da base do sisdia que será utilizada. Substituir a palavra: BASE_SISDIA, pelo diretório da base que será utilizada. Por exemplo: /sisdia/SisdiaEvolution, /sisdia/treino, etc.
5.4. Salve as alterações realizadas no arquivo Run_SMJD1000.sh e o feche. Para sair e salvar digite: <ESC> + :x
5.5. Dar permissão ao arquivo Run_SMJD1000.sh. Para isto utilize o comando: chmod 777 /root/bin/Run_SMJD1000.sh
6. Execute no prompt do Linux o comando crontab –e
7. Será exibida uma lista com comandos de crontab. Vá até o final do arquivo e acrescente a linha abaixo:
30 23 1 * */root/bin/Run_SMJD1000.sh 1>/root/tmp/Run_SMJD1000.1.log 2>/root/tmp/Run_SMJD1000.2.log
Obs: No diretório /tmp serão gerados dois logs.
/tmp/Run_SMJD1000.1.log esse é o log gerado para quando a execução ocorrer sem sem erro. Normalmente este é gerado zerado.
/tmp/Run_SMJD1000.2.log esse é o log gerado para quando a execução apresentar erros.
No exemplo citado acima, referente a linha do crontab, o arquivo será gerado a cada primeiro dia do mês às 23:30 (vinte e três horas e trinta minutos). Caso seja necessário efetuar a alteração dos dias/horários para geração. Para isto poderá fazer consulta da configuração do crontab, utilizando http://pt.wikipedia.org/wiki/Crontab para orientação.
7. Salve o arquivo de crontab e saia do mesmo, lembrando que para sair e salvar digite: <ESC> + :x.