Como corrigir erros de dados que impedem que a integração de Management Reporter

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 2931999
Sumário
Este artigo fornece passos para executar um script de Diagnostics.sql para Management Reporter 2012 para Microsoft Dynamics SL 2011. Este script pode identificar erros de dados que possam impedir o êxito da integração Management Reporter. Erros de dados podem provir de várias origens e pode causar inconsistência entre tabelas ou criar valores de campo inválido.

Na parte inferior deste artigo existem também alguns scripts utilizados para localizar dados em minúsculas, que podem causar problemas no MR.
Resolução
Transfira o seguinte ficheiro de script e, em seguida, siga estes passos para executar os scripts na base de dados de aplicação do Microsoft Dynamics SL no Management Reporter. Altere o tipo de saída para Saída de texto para uma melhor visualização.

Nota Estas informações mesmas estão contidas no ficheiro de Diagnostics2.Sql, que está incluído no ficheiro MR2.zip.

Importante Efectue sempre uma cópia de segurança da base de dados antes de actualizar quaisquer dados Management Studio.

Passo 1

  • Tem mais do que um ID de moeda definido?

    Select 'Step1a', CASE WHEN COUNT(*)>1 then 'YES' else 'NO' end, count(*) from currncy with (nolock)

    Notas
    • Não = moeda única
    • Sim = várias moedas que são configuradas na manutenção de moeda e tem o número listado
  • Multi-divisa está activado?

    Select top 1 'Step1b',case isnull((select MAX(mcactivated) from cmsetup),-99) WHEN 1 then 'ENABLED' when -99 then 'NOT SETUP' else 'NOT ENABLED' end

    Nota Este script devolve "Enabled" ou "Não definido."

Passo 2

Procure um registo de configuração de moeda incorrecta. Avalie cada situação. Para obter ajuda para o fazer, contacte o suporte técnico do Microsoft Dynamics.
  • Isto deve ser a moeda base de dados da aplicação:

    Select 'Step2a',BaseCuryId from glsetup with (nolock)

  • A moeda Base da contabilidade a real (Saldo tipo = «a») deve ser a moeda base da base de dados.

    Select 'Step2b',BaseCuryID,LedgerID, BalanceType from ledger with (nolock)
  • O campo de BaseCuryID de todas as empresas numa base de dados de determinada aplicação deve ser os mesmos.

  • Este script mostra o campo de BaseCuryID de todas as bases de dados de aplicação que estão associadas com a base de dados do sistema.

    Select 'Step2c',BaseCuryID, CpnyID, databasename from vs_company with (nolock)
  • O campo de BaseCuryIDs deve existir na tabela de manutenção de moeda. As moedas estrangeiras devem também existir nesta tabela.

    Select 'Step2d',curyid from currncy with (nolock)

Passo 3

Procure valores incorrectos para os campos CuryID e ledgerIDos registos de transacção e o resumo. Estas instruções aceder apenas os registos da lista dos 100 melhores. Para ver todos os registos, remova as palavras "100 superior" a partir do script.
  • Accthist que tenha um ID de moeda que não esteja na tabela de manutenção de moeda.

    Select top 100 'Step3a',CpnyID, LedgerID, FiscYr, Acct, SUB, CuryId, * from accthist with (nolock) where CuryId not in (select CuryId from Currncy with (nolock))

    Correcção: Poderá ter de actualizar o campo deCuryID para corresponder ao campo BaseCuryID . No entanto, poderá existir esse registo. Neste caso, receberá uma mensagem de 6909. Se isto ocorrer, determine se o registo é necessário.

  • Accthist que tenha um ID de moeda que não corresponde a movimentos de registo (ou para um movimento que não esteja na tabela de).

    Select top 100 'Step3b',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.SUB, a.CuryId, l.BaseCuryID,* from accthist a with (nolock) left join Ledger l with (nolock) on a.LedgerID=l.LedgerID where l.LedgerID is null OR l.BaseCuryID<>a.CuryId

    Correcção: A actualização depende cada situação.

  • CuryAcct tem um CuryID não na tabela de manutenção de moeda.

    Select top 100 'Step3c',CpnyID, LedgerID, FiscYr, Acct, SUB,BaseCuryID, CuryId, * from curyacct with (nolock) where CuryId not in (select CuryId from Currncy with (nolock))

    Correcção: A actualização irá depender cada situação. Poderá ter de eliminar o registo mais tarde, se não existir nenhum registo correspondente do AcctHist. Além disso, poderá ter de actualizar o campo CuryID . No entanto, poderá existir esse registo. Neste caso, receberá uma mensagem de 6909. Se isto ocorrer, determine se o registo é necessária.

  • CuryAcct com um BasecuryID que não correspondem ao registo de contabilidade (ou para um movimento que não esteja na tabela de).

    Select top 100 'Step3d',c.CpnyID, c.LedgerID, c.FiscYr, c.Acct, c.SUB,c.BaseCuryID, c.CuryId,l.BaseCuryID, * from curyacct c with (nolock) left join Ledger l with (nolock) on c.LedgerID=l.LedgerID where l.LedgerID is null OR c.BaseCuryID<>l.BaseCuryId

    Correcção: A actualização depende cada situação.

  • GLTran com um CuryID não na tabela de manutenção de moeda.

    Select top 100 'Step3e',CpnyID, LedgerID, FiscYr, Acct, SUB,BaseCuryID, CuryId,* from gltran with (nolock) where Posted='P' and CuryId not in (select CuryId from Currncy)

    Correcção: A actualização depende cada situação. Se pretender actualizar o campo deCuryId para um valor válido.

  • GLTran com um valor de campo de BaseCuryID que não correspondem ao registo de contabilidade (ou para um movimento que não esteja na tabela de).

    Select top 100 'Step3f',g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.SUB, g.BaseCuryID, g.CuryId, * from gltran g with (nolock) left join Ledger l with (nolock) on g.LedgerID=l.LedgerID where g.Posted='P' and g.LedgerID is null OR l.BaseCuryID<>g.BaseCuryId

    Para corrigir: actualização dependerá cada situação. Se pretender actualizar o campo deBaseCuryID para um valor válido.

Passo 4

Procure registos de resumo sem correspondência.
  • Localize registos CuryAcct sem AcctHist registos.

    Select top 100 'Step4a',c.CpnyID, c.LedgerID, c.FiscYr, c.Acct, c.Sub, c.BaseCuryID, c.CuryId,*from CuryAcct c with (nolock)left join AcctHist a with (nolock) on c.CpnyID=a.CpnyID and c.Acct=a.Acct and c.Sub=a.Sub and c.LedgerID=a.LedgerID and c.FiscYr=a.FiscYrwhere a.CpnyID is null order by c.CpnyID, c.Acct, c.SUB, c.ledgerid, c.FiscYr

    Correcção: Executar o script de Fix4a.SQL de MR2.zip no tanto a mesma divisa, como a moeda com várias bases de dados se forem comunicados erros.

  • Localize Accthist sem CuryAcct registos.

    Select top 100 'Step4b',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.Sub, a.CuryId, *from AcctHist a with (nolock)left join Curyacct c with (nolock) on c.CpnyID=a.CpnyID and c.Acct=a.Acct and c.Sub=a.Sub and c.LedgerID=a.LedgerID and c.FiscYr=a.FiscYrwhere a.BalanceType='A' and c.CpnyID is null order by a.CpnyID, a.Acct, a.SUB, a.ledgerid, a.FiscYr

    Correcção: Bases de dados de multi-divisa, quer inicializar um registo de curyacct no modo de inicialização GL > histórico da conta ou registar uma transacção para o acct/sub/contabilidade/fiscyr/cpnyid/curyid. Para criar ou actualizar um registo de curyacct na GL > histórico da conta > separador moeda, tem de introduzir os dados para cada período. Quando cria um lote para registar uma transacção para a conta, isto deverá criar um registo de CuryAcct que contém os valores para cada período. Certifique-se de que utiliza o ano em que o erro é reportado como o ano para o registo. Em seguida, inverta a secção para remover os dólares com a conta.

    Para uma base de dados de mesma divisa, abra o registo no GL > histórico da conta durante o modo de inicialização se apenas existirem um ou dois registos. Alterar o saldo inicial por alguma quantia, guardar o registo, revertê-lo e, em seguida, guarde novamente. Este procedimento cria o registo de curyacct. Ou, pode executar o script a partir passo 6a nesta secção.

  • GLTrans sem AcctHist

    Esta consulta será executada lentamente se existirem muitos movimentos de gltrans e se todos os movimentos são válidos. (Consulta efectivamente é executada mais rapidamente se existirem dados danificados.)

    Select top 100 'Step4c',g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.Sub, g.BaseCuryID, g.CuryId,* from GLTran g with (nolock)left join AcctHist a with (nolock) on g.CpnyID=a.CpnyID and g.Acct=a.Acct and g.Sub=a.Sub and g.LedgerID=a.LedgerID and g.FiscYr=a.FiscYrinner join vs_company c with (nolock) on g.CpnyID=c.CpnyID and c.CpnyCOA in (select CpnyID from glsetup with (nolock)) -- only companies in this application DBwhere g.posted='P' and a.CpnyID is null order by g.CpnyID, g.LedgerID, g.FiscYr, g.Acct, g.Suboption (force order) -- added for performance in larger databases

    Correcção: Avalie as entradas do campo GLtrans . Se não existir nenhum registo de AcctHist, a financeira não estiver a utilizar estas operações para relatórios
  • Isto normalmente acontece porque as transacções são antigas. Pode decidir eliminá-los ou tomar qualquer outra acção. Avalie cuidadosamente estas entradas.

Passo 5

Procure registos de GLTrans que têm datas inválidas ou períodos. Esses registos podem causar os seguintes erros Management Reporter:
  • Texto de erro: parâmetros de ano, mês e dia descrevem um campo DateTime unrepresentable.
  • Texto de erro: referência de objecto não está definida para uma instância de um objecto.
  • Registos de gltrans que possui um campo de FiscYr em branco.

    Select top 100 'Step5a',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate, Posted, Rlsed, BatNbr, Module, * from GLTran with (nolock) where FiscYr='' and (Rlsed=1 or Posted='P')

    Para corrigir: considere actualizar o campo de FiscYrcom base no valor perpost.

  • Registos de gltrans que têm um valor de perpost até ao momento fora num intervalo normal.

    Select top 100 'Step5b',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate, Posted, Rlsed, BatNbr, Module, *from GLTran with (nolock) where (PerPost>='204812' or PerPost<='195001') and (Rlsed=1 or Posted='P')

    Correcção: O destas secções terá todos os provavelmente num período futuro para registar. Pode abrir esses lotes no GL > transacções de diário durante o modo de inicialização.
    Quer eliminá-las, alterar o período para registar ou processá-las, conforme adequado.

  • Registos de GLTrans que tenham um valor de transdate que está agora fora num intervalo normal (frequentemente mantendo 2079 ano).

    Select top 100 'Step5c',CpnyID, LedgerID, FiscYr, Acct, Sub, perpost, perent, trandate,Posted, Rlsed, BatNbr, Module, *from GLTran with (nolock) where (trandate>='01/01/2048' or trandate<='01/01/1950') and (Rlsed=1 or Posted='P') and TranDate<>'1/1/1900'

    Correcção: Actualização trandate para crtd_datetime. Este script mostra como.

    update gltran set trandate=crtd_datetime where (trandate>='01/01/2048' or trandate<='01/01/1950') and (Rlsed=1 or Posted='P') and TranDate<>'1/1/1900' 

  • Registos de AcctHist com um campo de FiscYr até ao momento fora de um intervalo normal.

    Select top 100 'Step5d',a.CpnyID, a.LedgerID, a.FiscYr, a.Acct, a.Sub, a.CuryId, *from AcctHist a with (nolock) where a.FiscYr>'2048' or a.FiscYr<'1950'

    Correcção: Estes são registos provavelmente não pretendidos. Na manipulação de dados Historicamente, pode ter definido do ano fiscal a um ano futuro para manter os registos para posterior revisão possível.

Passo 6

Localize instâncias em que os valores do registo de AcctHist não correspondem os valores do registo CuryAcct .

Nota Execute esta declaração apenas depois de tem sido corrigidos os problemas nos passos 1 a 5.

select top 1000 'Step6a', a.CpnyID, a.Acct, a.Sub, a.LedgerID, a.FiscYr, c.numCuryAcct, a.BegBal, c.begbal, a.PtdBal00, c.ptdbal00, a.PtdBal01, c.ptdbal01, a.PtdBal02, c.ptdbal02,   a.PtdBal03, c.ptdbal03, a.PtdBal04, c.ptdbal04, a.PtdBal05, c.ptdbal05, a.PtdBal06, c.ptdbal06, a.PtdBal07, c.ptdbal07, a.PtdBal08, c.ptdbal08,   a.PtdBal09, c.ptdbal09, a.PtdBal10, c.ptdbal10, a.PtdBal11, c.ptdbal11, a.PtdBal12, c.ptdbal12, a.ytdBal00, c.ytdbal00, a.ytdBal01, c.ytdbal01,  a.ytdBal02, c.ytdbal02, a.ytdBal03, c.ytdbal03, a.ytdBal04, c.ytdbal04, a.ytdBal05, c.ytdbal05, a.ytdBal06, c.ytdbal06, a.ytdBal07, c.ytdbal07,   a.ytdBal08, c.ytdbal08, a.ytdBal09, c.ytdbal09, a.ytdBal10, c.ytdbal10, a.ytdBal11, c.ytdbal11, a.ytdBal12, c.ytdbal12  from AcctHist a inner join (select count(*) as numCuryAcct, CpnyID, Acct, Sub, LedgerID, FiscYr, SUM(begbal) as begbal, SUM(ptdbal00) as ptdbal00, SUM(ptdbal01) as ptdbal01, SUM(ptdbal02) as ptdbal02, SUM(ptdbal03) as ptdbal03, SUM(ptdbal04) as ptdbal04, SUM(ptdbal05) as ptdbal05, SUM(ptdbal06) as ptdbal06, SUM(ptdbal07) as ptdbal07, SUM(ptdbal08) as ptdbal08, SUM(ptdbal09) as ptdbal09, SUM(ptdbal10) as ptdbal10, SUM(ptdbal11) as ptdbal11,SUM(ptdbal12) as ptdbal12, SUM(ytdbal00) as ytdbal00, SUM(ytdbal01) as ytdbal01, SUM(ytdbal02) as ytdbal02, SUM(ytdbal03) as ytdbal03, SUM(ytdbal04) as ytdbal04, SUM(ytdbal05) as ytdbal05, SUM(ytdbal06) as ytdbal06, SUM(ytdbal07) as ytdbal07, SUM(ytdbal08) as ytdbal08, SUM(ytdbal09) as ytdbal09, SUM(ytdbal10) as ytdbal10, SUM(ytdbal11) as ytdbal11, SUM(ytdbal12) as ytdbal12from curyacct group by CpnyID, Acct, Sub, LedgerID, FiscYr) c   on a.CpnyID=c.CpnyID and a.Acct=c.Acct and a.Sub=c.Sub and a.LedgerID=c.LedgerID and a.FiscYr=c.FiscYr  where round(a.BegBal,2)<>round(c.begbal,2) or round(a.PtdBal00,2)<>round(c.PtdBal00,2) or round(a.PtdBal01,2)<>round(c.PtdBal01,2) or   round(a.PtdBal02,2)<>round(c.PtdBal02,2) or round(a.PtdBal03,2)<>round(c.PtdBal03,2) or round(a.PtdBal04,2)<>round(c.ptdbal04,2) or   round(a.PtdBal05,2)<>round(c.PtdBal05,2) or round(a.PtdBal06,2)<>round(c.PtdBal06,2) or round(a.PtdBal07,2)<>round(c.PtdBal07,2) or   round(a.PtdBal08,2)<>round(c.PtdBal08,2) or round(a.PtdBal09,2)<>round(c.PtdBal09,2) or round(a.PtdBal10,2)<>round(c.PtdBal10,2) or   round(a.PtdBal11,2)<>round(c.PtdBal11,2) or round(a.PtdBal12,2)<>round(c.PtdBal12,2) or round(a.ytdBal00,2)<>round(c.ytdBal00,2) or   round(a.ytdBal01,2)<>round(c.ytdBal01,2) or round(a.ytdBal02,2)<>round(c.ytdBal02,2) or round(a.ytdBal03,2)<>round(c.ytdBal03,2) or   round(a.ytdBal04,2)<>round(c.ytdbal04,2) or round(a.ytdBal05,2)<>round(c.ytdBal05,2) or round(a.ytdBal06,2)<>round(c.ytdBal06,2) or   round(a.ytdBal07,2)<>round(c.ytdBal07,2) or round(a.ytdBal08,2)<>round(c.ytdBal08,2) or round(a.ytdBal09,2)<>round(c.ytdBal09,2) or   round(a.ytdBal10,2)<>round(c.ytdBal10,2) or round(a.ytdBal11,2)<>round(c.ytdBal11,2) or round(a.ytdBal12,2)<>round(c.ytdBal12,2)

Para uma base de dados de mesma divisa, abra o registo no GL > histórico da conta durante o modo de inicialização se existem apenas alguns registos. Alterar o saldo inicial por alguma quantia, guardar o registo, reverter o registo e, em seguida, guarde-o novamente. Este procedimento actualiza o registo de Curyacct para corresponder ao registo Accthist . Se existirem muitos registos, execute o script de ResetCuryAcctfromAcctHistStep6a.sql do ficheiro MR2.zip.

Na base de dados multi-divisa, abra o GL > histórico da conta durante o modo de inicialização se existem apenas alguns registos e, em seguida, clique no separador moedacorrigir cada período individualmente, consoante o caso. Se existirem muitos registos, execute o script MultiCurrencyStep6aFix.sql partir do ficheiro MR2.zip. Será efectuada qualquer alteração no registo de BaseCuryID .

Depois de concluir o passo 6, volte a executar o script Diagnostics2.SQL para verificar que já não comunica erros.



Scripts adicionais a localizar dados em minúsculas, que podem causar problemas no MR.

Este script deve procurar vários registos em que o Company.DatabaseName não tem o mesmo formato (ex: SLDemoApp e SLDEMOAPP). Execute este script na base de dados do sistema.

Seleccione c.DatabaseName, c.CpnyID da empresa c associação externa à esquerda sys.databases sd em c.DatabaseName agrupar Latin1_General_CS_AS = sd.name Latin1_General_CS_AS de agrupar

em que sd.name é nulo e DatabaseName em (select c1. DatabaseName da empresa c1 associação externa à esquerda empresa c2 na c1. DatabaseName = c2. DatabaseName onde c1. DatabaseName = c2. DatabaseName e c1. Latin1_General_CS_AS de agrupar DatabaseName! = c2. Latin1_General_CS_AS de agrupar DatabaseName)

Para corrigir: actualizar o databasename para estar em maiúsculas.




Este script procura minúsculas ID da empresa e subconta nas tabelas accthist, curyacct e gltran. Execute este script na base de dados do sistema.


DECLARAR @DbName VARCHAR(50)
DECLARAR @useStatement VARCHAR(256)
DECLARAR @fullStatement VARCHAR(8000)

DECLARAR db_cursor para o CURSOR
Seleccione DatabaseName distinta da empresa

Abrir db_cursor
FETCH seguinte de db_cursor INTO @DbName

ENQUANTO @@FETCH_STATUS = 0
COMEÇAR

Definir @DbName = LTRIM(RTRIM(@DbName))
Definir @useStatement = 'Utilização' + @DbName + '
Definir @fullStatement = '
Seleccione sub como ' Sub - AcctHist-' + @DbName + ' ', *
DE AcctHist
WHERE UPPER(sub) <> sub agrupar Latin1_General_CS_AS

Seleccione sub como ' Sub - GLTran-' + @DbName + ' ', *
DE GLTran
WHERE UPPER(sub) <> sub agrupar Latin1_General_CS_AS


Seleccione sub como ' Sub - CuryAcct-' + @DbName + ' ', *
DE CuryAcct
WHERE UPPER(sub) <> sub agrupar Latin1_General_CS_AS

Seleccione CpnyID como ' CpnyID - AcctHist-' + @DbName + ' ', *
DE AcctHist
Em que UPPER(CpnyID) <> CpnyID Latin1_General_CS_AS de agrupar

Seleccione CpnyID como ' CpnyID - GLTran-' + @DbName + ' ', *
DE GLTran
Em que UPPER(CpnyID) <> CpnyID Latin1_General_CS_AS de agrupar


Seleccione CpnyID como ' CpnyID - CuryAcct-' + @DbName + ' ', *
DE CuryAcct
Em que UPPER(CpnyID) <> CpnyID Latin1_General_CS_AS de agrupar


Seleccione SUB como ' Sub - SubAcct-' + @DbName + ' ', * de SubAcct onde (SUB agrupar sql_latin1_general_cp1_cs_as <> upper(SUB))
ou (ConsolSub agrupar sql_latin1_general_cp1_cs_as <> upper(ConsolSub))
'

Exec (@useStatement + @fullStatement)

FETCH seguinte de db_cursor INTO @DbName
FIM

Db_cursor FECHAR
Db_cursor DEALLOCATE




Para corrigir: se encontrar qualquer minúsculas subcontas pode executar estes para os colocar maiúsculas.


Actualizar GLTran definir Sub = UPPER(Sub)

Actualizar AcctHist definir Sub = UPPER(Sub)

Actualizar CuryAcct definir Sub = UPPER(Sub)



Se encontrar qualquer minúsculas empresa ID pode executar estes para os colocar maiúsculas.

Actualizar cpnyid de conjunto de accthist = UPPER(cpnyid) em que UPPER(CpnyID) <> CpnyID agrupar Latin1_General_CS_AS

Actualizar cpnyid de conjunto de curyacct = UPPER(cpnyid) em que UPPER(CpnyID) <> CpnyID agrupar Latin1_General_CS_AS

Actualizar cpnyid de conjunto de gltran = UPPER(cpnyid) em que UPPER(CpnyID) <> CpnyID agrupar Latin1_General_CS_AS



Este script procurará minúsculas LedgerID nas tabelas accthist, curyacct e gltran. Execute este script na base de dados de aplicação.

Seleccionar superior a 1 LedgerID de AcctHist em que UPPER(LedgerID) <> LedgerID Latin1_General_CS_AS de agrupar

Seleccionar superior a 1 LedgerID de GLTran em que UPPER(LedgerID) <> LedgerID Latin1_General_CS_AS de agrupar

Seleccionar superior a 1 LedgerID de CuryAcct em que UPPER(LedgerID) <> LedgerID Latin1_General_CS_AS de agrupar



Para corrigir: se encontrar qualquer em minúsculas do LedgerID pode executar estes para os colocar maiúsculas.

Actualizar GLTran set LedgerID = UPPER(LedgerID), onde LedgerID agrupar Latin1_General_BIN como '% % [a-z]'

Actualizar AcctHist set LedgerID = UPPER(LedgerID), onde LedgerID agrupar Latin1_General_BIN como '% % [a-z]'

Actualizar CuryAcct set LedgerID = UPPER(LedgerID), onde LedgerID agrupar Latin1_General_BIN como '% % [a-z]'


Este script procurará minúsculas CuryID nas tabelas accthist, curyacct e gltran. Execute este script na base de dados de aplicação.

Seleccionar superior a 1 CuryID de AcctHist em que UPPER(CuryID) <> CuryID Latin1_General_CS_AS de agrupar

Seleccionar superior a 1 CuryID de GLTran em que UPPER(CuryID) <> CuryID Latin1_General_CS_AS de agrupar

Seleccionar superior a 1 CuryID de CuryAcct em que UPPER(CuryID) <> CuryID Latin1_General_CS_AS de agrupar



Para corrigir:2964624.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2931999 - Última Revisão: 06/15/2015 13:09:00 - Revisão: 7.0

Microsoft Dynamics SL 2011 Service Pack 2, Microsoft Dynamics SL 2011 Service Pack 1, Microsoft Dynamics SL 2011 Feature Pack 1, Microsoft Dynamics SL 2011

  • kbmbsmigrate kbsurveynew kbmt KB2931999 KbMtpt
Comentários