software‎ > ‎módulos‎ > ‎web framework‎ > ‎

atualização web framework

2017.9

postado em 25 de set de 2017 10:35 por Ariluce Sousa   [ 25 de set de 2017 10:58 atualizado‎(s)‎ ]

Publicação Técnica

  • As classes e funções globais nativas do ambiente JavaScript do Engine e do pacote engine.jaz foram migradas para uma nova estrutura de módulos no padrão CommonJS. Essa migração não altera o comportamento dos códigos existentes no sistema, pois todos os símbolos globais foram mantidos para fins de compatibilidade. A nova estrutura de módulos é uma funcionalidade experimental do sistema e ainda não deve ser utilizada em customizações ou produtos desenvolvidos na plataforma Bematech ERP. Por ser uma funcionalidade experimental, ainda são esperadas alterações de estruturas que podem exigir a revisão do uso dos módulos. Será criada uma publicação técnica quando nova estrutura de módulos estiver amadurecida e pronta para ser utilizada pelos clientes e parceiros. Segue a relação das APIs migradas:

    • getStackTrace: erp-engine/lib/error/getStackTrace
    • ApplyUpdatesAction: erp-engine/lib/dataset/ApplyUpdatesAction
    • DataSet: erp-engine/lib/dataset/DataSet
    • DataSetStates: erp-engine/lib/dataset/DataSetStates
    • GetFieldOptions: erp-engine/lib/dataset/GetFieldOptions
    • DetailedError: erp-engine/lib/error/DetailedError
    • Request: erp-engine/lib/http/Request
    • Response: erp-engine/lib/http/Response
    • Barcode: erp-engine/lib/barcode/Barcode
    • Base64: erp-engine/lib/encoding/Base64
    • Encoder: erp-engine/lib/encoding/Encoder
    • Logger: erp-engine/lib/log/Logger
    • BigDecimal: erp-engine/lib/math/BigDecimal
    • JSScanner: erp-engine/lib/compiler/ijs/JSScanner
    • JSSpecialWord: erp-engine/lib/compiler/ijs/JSSpecialWord
    • JSTokenType: erp-engine/lib/compiler/ijs/JSTokenType
    • JSTokenWord: erp-engine/lib/compiler/ijs/JSTokenWord
    • Classes: erp-engine/lib/database/Classes
    • StreamedDatabaseBackup: erp-engine/lib/database/DBBackup
    • DatabaseProxy: erp-engine/lib/database/Database
    • DBCache: erp-engine/lib/database/DBCache
    • Zlib: erp-engine/lib/compress/Zlib
    • GzipFile: erp-engine/lib/compress/GzipFile
    • Connection: erp-engine/lib/connection/Connection
    • FileSynchronizer: erp-engine/lib/connection/FileSynchronizer
    • Crypto: erp-engine/lib/crypto/Crypto
    • CryptoPKey: erp-engine/lib/crypto/CryptoPKey
    • DSACryptoPKey: erp-engine/lib/crypto/DSACryptoPKey
    • RSACryptoPKey: erp-engine/lib/crypto/RSACryptoPKey
    • MD5: erp-engine/lib/crypto/MD5
    • SHA1: erp-engine/lib/crypto/SHA1
    • Mail: erp-engine/lib/mail/Mail
    • MailMessage: erp-engine/lib/mail/MailMessage
    • MailMessageHeader: erp-engine/lib/mail/MailMessageHeader
    • MailMessagePart: erp-engine/lib/mail/MailMessagePart
    • Pop3: erp-engine/lib/mail/Pop3
    • VirtualFileSystem: erp-engine/lib/vfs/VirtualFileSystem
    • MemoryManager: erp-engine/lib/engine/MemoryManager
    • Session: erp-engine/lib/session/Session
    • SessionManager: erp-engine/lib/session/SessionManager
    • CriticalSection: erp-engine/lib/sync/CriticalSection
    • sleep: erp-engine/lib/sync/sleep
    • SyncEvent: erp-engine/lib/sync/SyncEvent
    • StringUtils.indexOfChars: erp-engine/lib/string/indexOfChars
    • StringUtils.removeChars: erp-engine/lib/string/removeChars
    • File: erp-engine/lib/io/File
    • MemoryStream: erp-engine/lib/io/MemoryStream
    • SearchRecord: erp-engine/lib/io/SearchRecord
    • SerialPort: erp-engine/lib/io/SerialPort
    • IdoDB: erp-engine/lib/ido/IdoDB
    • IdoDBManager: erp-engine/lib/ido/IdoDBManager
    • Enginelet: erp-engine/lib/java/Enginelet
    • JavaImporter: erp-engine/lib/java/JavaImporter
    • JavaRequest: erp-engine/lib/java/JavaRequest
    • JavaServer: erp-engine/lib/java/JavaServer
    • LicenseManager: erp-engine/lib/license/LicenseManager
    • Socket: erp-engine/lib/net/Socket
    • XMLHttpRequest: erp-engine/lib/net/XMLHttpRequest
    • OSApplication: erp-engine/lib/os/OSApplication
    • Profiler: erp-engine/lib/profiler/Profiler
    • Progress: erp-engine/lib/progress/Progress
    • ProgressMonitor: erp-engine/lib/progress/ProgressMonitor
    • TaskProgressStatus: erp-engine/lib/progress/TaskProgressStatus
    • TaskProgressStatusArray: erp-engine/lib/progress/TaskProgressStatusArray
    • Scheduler: erp-engine/lib/scheduler/Scheduler
    • Task: erp-engine/lib/scheduler/Task
    • Security: erp-engine/lib/security/Security
    • Engine, Server e ngin.browser.setKioskMode: erp-engine/lib/engine/Engine
    • ngin.DataSetUtils: erp-engine/lib/dataset/DeltaDumper
    • ngin.text.toLowerCaseNoAccent: erp-engine/lib/string/toLowerCaseNoAccent
    • ngin.text.toUpperCaseNoAccent: erp-engine/lib/string/toUpperCaseNoAccent
    • ngin.text.removeAccents: erp-engine/lib/string/removeAccents
    • ngin.text.Regex: erp-engine/lib/regexp/Regex
    • ngin.text.ResourceString: erp-engine/lib/i18n/ResourceString
    • ngin.util.createGUID: erp-engine/lib/uuid/createGUID
    • ngin.util.ZipFile: erp-engine/lib/compress/ZipFile
    • ngin.util.numberToHex: erp-engine/lib/encoding/numberToHex
    • ngin.dataset.DeltaInspector: erp-engine/lib/dataset/DeltaInspector
    • ngin.dataset.RecordIterator: erp-engine/lib/dataset/RecordIterator
    • ngin.ufs.UnionFileSystem e ngin.ufs.configureWithLocalSettings: erp-engine/lib/ufs/UnionFileSystem
    • ngin.hash.superFastHash: erp-engine/lib/hash/superFastHash
    • ngin.idobkp.EventReader: erp-engine/lib/ido/BackupEventReader
    • ngin.net.downloadFile: erp-engine/lib/net/downloadFile
    • ngin.scheduler.Job: erp-engine/lib/scheduler/Job
    • ngin.security.AuthToken: erp-engine/lib/security/AuthToken
    • ngin.js.ScriptRunner: erp-engine/lib/runner/ScriptRunner
    • ngin.array.fromArguments: erp-engine/lib/array/argumentsToArray
    • ngin.array.flatten: erp-engine/lib/array/flatten
    • ngin.array.equals: erp-engine/lib/array/arrayEquals
    • ngin.array.listToArray: erp-engine/lib/array/listToArray
    • ngin.compression.jsmin: erp-engine/lib/compress/jsmin
    • ngin.date.WeekDay: erp-engine/lib/date/WeekDay
    • ngin.date.Month: erp-engine/lib/date/Month
    • ngin.date.getWeekNumber: erp-engine/lib/date/getWeekNumber
    • ngin.date.formatTime: erp-engine/lib/date/formatTime
    • ngin.date.phpFormat: erp-engine/lib/date/phpFormatDate
    • ngin.date.Formats: erp-engine/keys/DateFormats
    • ngin.date.firstWeekDayOf: erp-engine/lib/date/firstWeekDayOf
    • ngin.date.firstMonthDayOf: erp-engine/lib/date/firstMonthDayOf
    • ngin.date.format: erp-engine/lib/date/formatDate
    • ngin.date.parse: erp-engine/lib/date/parseDate
    • ngin.date.incDate: erp-engine/lib/date/incDate
    • ngin.date.incMonth: erp-engine/lib/date/incMonth
    • ngin.date.checkRange: erp-engine/lib/date/checkRange
    • ngin.date.formatElapsedTime: erp-engine/lib/date/formatElapsedTime
    • ngin.date.fromFields: erp-engine/lib/date/fieldsToDate
    • ngin.date.parseISO8601Date: erp-engine/lib/date/parseISO8601Date
    • ngin.date.skipHoliday: erp-engine/lib/date/skipHoliday
    • ngin.date.isLeapYear: erp-engine/lib/date/isLeapYear
    • ngin.date.getNumberOfDaysInMonth: erp-engine/lib/date/getNumberOfDaysInMonth
    • ngin.error.DetailedErrorBase: erp-engine/lib/error/DetailedErrorBase
    • ngin.event.AdapterDescriptor: erp-engine/lib/event/AdapterDescriptor
    • ngin.event.Adapter: erp-engine/lib/event/Adapter
    • ngin.event.ListenerCompareFunctions: erp-engine/lib/event/ListenerCompareFunctions
    • ngin.event.DuplicationHandling: erp-engine/lib/event/DuplicationHandling
    • ngin.event.Emitter: erp-engine/lib/event/Emitter
    • ngin.event.Event: erp-engine/lib/event/Event
    • ngin.event.EventTypeException: erp-engine/lib/event/EventTypeError
    • ngin.event.Listener: erp-engine/lib/event/Listener
    • ngin.event.SurrogateListener: erp-engine/lib/event/SurrogateListener
    • ngin.http.Accepts: erp-engine/lib/http/Accepts
    • ngin.http.Error: erp-engine/lib/http/HttpError
    • ngin.http.Header: erp-engine/lib/http/Header
    • ngin.http.MediaType: erp-engine/lib/http/MediaType
    • ngin.http.Method: erp-engine/lib/http/Method
    • ngin.http.RealmConfig: erp-engine/lib/http/RealmConfig
    • ngin.http.RequestBody: erp-engine/lib/http/RequestBody
    • ngin.http.ServerId: erp-engine/lib/http/ServerId
    • ngin.http.Status: erp-engine/lib/http/Status
    • ngin.keys.Classes: erp-engine/keys/Classes
    • ngin.keys.MimeTypes: erp-engine/keys/MimeTypes
    • ngin.module.Module: erp-engine/lib/module/Module
    • ngin.module.SourceModule: erp-engine/lib/module/SourceModule
    • NetworkUtilities e ngin.net.NetworkUtilities: erp-engine/lib/net/NetworkUtilities
    • ngin.object.map: erp-engine/lib/object/map
    • ngin.object.forEach: erp-engine/lib/object/forEach
    • ngin.object.reduce: erp-engine/lib/object/reduce
    • ngin.object.isEmpty: erp-engine/lib/object/isEmpty
    • ngin.object.deepClone: erp-engine/lib/object/deepClone
    • ngin.object.declareProperty: erp-engine/lib/object/declareProperty
    • ngin.object.getOwnPropertyDescriptor: erp-engine/lib/object/getOwnPropertyDescriptor
    • ngin.object.remove: erp-engine/lib/object/remove
    • ngin.object.createSet: erp-engine/lib/object/createSet
    • ngin.range.Limit: erp-engine/lib/range/Limit
    • ngin.regexp.replace: erp-engine/lib/regexp/replaceAll
    • ngin.regexp.findFirstMatch: erp-engine/lib/regexp/findFirstMatch
    • ngin.regexp.findMatches: erp-engine/lib/regexp/findMatches
    • ngin.router.Broker: erp-engine/lib/router/Broker
    • ngin.router.Controller: erp-engine/lib/router/Controller
    • ngin.router.Result: erp-engine/lib/router/RouteResult
    • ngin.router.Route: erp-engine/lib/router/Route
    • ngin.router.RouteDef: erp-engine/lib/router/RouteDef
    • ngin.router.RouteSet: erp-engine/lib/router/RouteSet
    • ngin.router.RouteSetDef: erp-engine/lib/router/RouteSetDef
    • ngin.router.RoutesValidator: erp-engine/lib/router/RoutesValidator
    • ngin.router.DefaultResultTransforms: erp-engine/lib/router/DefaultTransforms
    • ngin.security.Application e SecurityPolicyApplications: erp-engine/lib/security/SecurityPolicyApplication
    • ngin.security.SecurityPolicy e SecurityPolicy: erp-engine/lib/security/SecurityPolicy
    • ngin.string.capitalize: erp-engine/lib/string/capitalize
    • ngin.uri.appendPath: erp-engine/lib/url/appendPath (por Paulo César Moreno, #13084246)
      [-1898142643,0100 Engine.ijs]
      [-1898141721,engine.jaz]
      [-1898140346,erp-engine.jaz]
      [-1898140955,0310 RouterTests API.ijs]
      [-1898141307,0100 Service Status API.ijs]
      [-1898141304,0200 OAuth2 API.ijs]
      [-1898144796,0100 Engine.is]
      [-1892603660,webframework.jaz]
      [-1898141262,8000 CORS.ijs]

2017.4

postado em 27 de abr de 2017 06:09 por Ariluce Sousa

Melhorias

2017.3

postado em 22 de mar de 2017 06:42 por Ariluce Sousa

Publicação Técnica

  • Foi criado o método upload na classe uwi.process.Process com a finalidade de permitir o upload de arquivos em processos do sistema. Esse método irá abrir um diálogo de upload de arquivos e retornará um Promise que será satisfeito com os arquivos recebidos, ou rejeitado se ocorrer um erro ou se for cancelado pelo usuário. Mais detalhes em http://developer.erp.bematech.com/js-api/latest/uwi.process.Process.html#upload. (por Paulo César Moreno, #12862781)
    [-1892603660,webframework.jaz]

2016.12

postado em 22 de dez de 2016 04:56 por Mateus Leon

Defeitos Corrigidos

  • Ao fechar um processo do sistema ocorria uma demora excessiva caso houvesse vários processos abertos. O problema era mais perceptível nas versões mais recentes do navegador Google Chrome 32 bits. (por Paulo César Moreno, #13012296)
    [-1892603660,webframework.jaz]

  • Ao atualizar a interação de um processo do Web Framework ocorria o erro "Cannot read property 'body' of null" caso uma grade recebesse o foco durante a montagem da interface. (por Paulo César Moreno, #13012421)
    [-1892603660,webframework.jaz]

2016.8

postado em 23 de ago de 2016 07:14 por Ariluce Sousa

Publicação Técnica

2015.11

postado em 18 de nov de 2015 10:51 por Ariluce Sousa

Publicação Técnica

2015.9

postado em 19 de out de 2015 11:44 por Ariluce Sousa

Publicação Técnica

Defeitos Corrigidos

  • Ao exportar para CSV alguns relatórios que utilizavam marcações ou componentes html não ocorria a substituição para caracteres de texto plano. (por Luiz Filipe Freitas Carneiro, #12626254
    [-1892603660,webframework.jaz]

  • Ao pesquisar em todos os campos da grade Recursos do processo /Estoque/Cadastros/Recursos e lotes/Recursos ocorria o erro "O item [0] do array de retorno da busca deve ser true ou false". (por Paulo César Moreno, #12616928
    [-1892603660,webframework.jaz]

  • Ao tentar bloquear um usuário no processo /Admin/Segurança/Grupos, papéis e usuários/Usuários.ip apenas ocorria o bloqueio do primeiro usuário selecionado. (por Luiz Filipe Freitas Carneiro, #12671286
    [-1892603660,webframework.jaz]

  • Ao alterar a propriedade justToGroup pelo Classes Explorer.ip de qualquer classe ocorria a exibição do erro setField is not a function (por Luiz Filipe Freitas Carneiro, #12661611
    [-1898141039,5100 Engine.view]

  • Ao alterar o tipo de um campo existente para grid ocorria a exibição indevida desse campo no modo tabela caso a propriedade tableViewFieldNamesnão fosse configurada. (por Paulo César Moreno, #12633466
    [-1892603660,webframework.jaz]

  • Ao utilizar um processo que exibisse dois ou mais níveis de progresso por meio da API Progress não ocorria a exibição do primeiro nível de progresso. Apenas o último nível era exibido, fora de contexto. (por Paulo César Moreno, #12625888
    [-1892603660,webframework.jaz]

  • Ao tentar alterar um campo de uma grade que o usuário não tem permissão de modificação ocorria que o valor informado continuava preenchido no campo após a mensagem de validação ser exibida. A falha era apenas visual, portanto não havia alteração indevida dos dados. (por Paulo César Moreno, #12644898
    [-1892603660,webframework.jaz]

  • Ao criar registros dinamicamente em uma grade detalhe, no evento afterPost da grade mestre, não ocorria a atualização do contador de registros da grade detalhe. (por Paulo César Moreno, #12652025
    [-1892603660,webframework.jaz]

  • Ao passar o mouse sobre uma imagem em um campo de uma grade ocorria a exibição de uma imagem muito pequena em vez de uma versão ampliada. (por Paulo César Moreno, #12644079
    [-1892603660,webframework.jaz]

  • Ao criar um relatório com pivot e groupType configurado com "groupByTotalField" não ocorria as totalizações de agrupamentos configuradas por meio da propriedade totalAggregate. (por Paulo César Moreno, #12619651
    [-1892603660,webframework.jaz]

  • Ao executar um relatório com pivot ocorria das colunas não estarem ordenadas de acordo com o que foi definido na visualização. (por Leonardo Alves de Mello Lambiasi, #12619616
    [-1892603660,webframework.jaz]

  • Ao preencher um campo com validação com um valor não permitido e mudar de campo com a tecla TAB, ocorria do valor não permitido persistir e o foco passar para o próximo campo (por Leonardo Alves de Mello Lambiasi, #12596641
    [-1892604158,uwf_min.js]

  • Ao exportar para CSV alguns relatórios que utilizavam marcações ou componentes html não ocorria a substituição para caracteres de texto plano. (por Luiz Filipe Freitas Carneiro, #12620986
    [-1892603660,webframework.jaz]

  • Ao alterar o valor de dias para troca de senha para um número positivo no processo de Regras de senha ocorria a exibição do erro O prazo de troca obrigatória deve ser maior que zero. A validação foi ajustada para não permitir valores negativos. (por Luiz Filipe Freitas Carneiro, #12660366
    [-1898143902,/Dados/Sistema/Tabelas Auxiliares/Regras de senha/0100 Engine.model]

  • Ao preencher uma data com formato MMYYYY apenas com o mês ocorria o erro "O valor NN informado não é uma data válida". (por Paulo César Moreno, #12652428
    [-1892603660,webframework.jaz]

  • Ao informar um nome de filtro inválido, dentro de um conjunto de nomes de filtros válidos, para o método createFilters da classebdo.datasource.DataSource não ocorria a geração de um erro que indicasse a não existência do filtro, sendo apenas ignorado o filtro inválido. (por Paulo César Moreno, #12604046
    [-1898141721,/products/Engine/library/engine.jaz]

  • Ao clicar no botão Gravar do processo /Precificação/Ajuste na tabela de preço ocorria o erro "Foram encontrados problemas ao gerar novos fatores". (por Paulo César Moreno, #12609994
    [-1898141721,engine.jaz]

  • Ao clicar em um link de um campo requerido durante a inserção do registro, ocorria a exibição da seguinte mensagem: Os seguintes campos da grid "nome da grade" devem ser preenchidos:" (por Leonardo Alves de Mello Lambiasi, #12603999
    [-1892603660,webframework.jaz]

2015.8

postado em 21 de ago de 2015 11:07 por Ariluce Sousa

Melhorias

2015.5

postado em 20 de mai de 2015 12:05 por Ariluce Sousa

Publicação Técnica

2015.4

postado em 17 de abr de 2015 12:19 por Ariluce Sousa

Publicação Técnica

1-10 of 34