Olá Pessoal,
Para quem precisa importar os dados da Contoso no AX2012 R3, deve-se primeiro baixar a DemoData que pode ser encontrada em: Contoso Demo Data, após isso, o próximo passo é baixar o Microsoft Dynamics AX 2012 Test Data Transfer Tool.
Agora que já possui os dois arquivos, vamos lá:
Se quiser ganhar muito tempo na hora de importar a demodata, vá até o SQL Server 2014 Management Studio -> Clique com o direito na database do AX -> Properties -> Files -> Altere o Initial Size (MB) da ROWS para 16.000 e do LOG para 26.000.
[]s,
Pichler
14 Nov 2014
Posted by: Juliano Bachesque in: X++
Olá Pessoal,
Tudo bem?
Pessoal passei por uma situação ontem ondem precisei criar um combobox no Microsoft Dynamics AX 2012 em uma tela de parâmetros porém não deveria mostrar todos os elementos do enum. Estou compartilhando com vocês caso venham a precisar.
Primeiro passo foi criar productSubtypeComboBox no classDeclaration do formulário.
public class FormRun extends ObjectRun { NumberSeqReference numberSeqReferenceProduct; boolean runExecuteDirect; TmpIdRef tmpIdRef; NumberSeqScope scope; NumberSeqApplicationModule numberSeqApplicationModule; container numberSequenceModules; SysFormEnumComboBox productSubtypeComboBox; } |
Criei o método createProductSubtypeComboBox que para definir quais elementos do enum podem ser listados no combobox .
private void createProductSubtypeComboBox() { FormRun caller; Args callerArgs; EcoResProductListPage ecoResProductListPage = EcoResProductListPage::Products; Set allowedProductSubtypes; boolean allowProductMastersOnly; boolean allowDistinctProductsOnly; caller = this.args().caller() as FormRun; callerArgs = caller ? caller.args() : null; if (callerArgs && callerArgs.parmEnumType() == enumNum(EcoResProductListPage)) { ecoResProductListPage = callerArgs.parmEnum(); } allowedProductSubtypes = new Set(Types::Enum); allowProductMastersOnly = ecoResProductListPage == EcoResProductListPage::ProductMasters; allowDistinctProductsOnly = ecoResProductListPage == EcoResProductListPage::DistinctProducts; if (allowDistinctProductsOnly) { allowedProductSubtypes.add(EcoResProductSubtype::Product); } else if (allowProductMastersOnly) { allowedProductSubtypes.add(EcoResProductSubtype::ProductMaster); } else { allowedProductSubtypes.add(EcoResProductSubtype::Product); allowedProductSubtypes.add(EcoResProductSubtype::ProductMaster); } productSubtypeComboBox = SysFormEnumComboBox::newParameters( this, element.controlId(formControlStr(EcoResProductParameters, Types_ProductSubtype)), enumNum(EcoResProductSubtype), allowedProductSubtypes); } |
O método createProductSubtypeComboBox foi adicionado ao init do formulário.
public void init() { this.numberSeqPreInit(); this.createProductSubtypeComboBox(); super(); EcoResProductParameters::find(); this.numberSeqPostInit(); } |
No método active do datasource foi adicionada uma linha para atualizar o combobox com a informação registrada no campo da tabela.
public int active() { int ret; ret = super(); productSubtypeComboBox.select(ProdImportDataStandard.ProductSubtype); return ret; } |
No método modified do controle esta sendo atualizado o campo da tabela sempre que modificado.
public boolean modified() { boolean ret; ret = super(); ProdImportDataStandard.ProductSubtype = productSubtypeComboBox.selection(); return ret; } |
Nas propriedades no combobox no formulário foi definido as seguintes propriedades:
Olá Pessoal,
Tudo bem?
Precisei criar um diário de contrato de preço/desconto no Microsoft Dynamics AX 2012 via X++. Estou compartilhando com vocês caso venham a precisar.
private PriceDiscAdmTable createPriceDiscAdmTable() { PriceDiscAdmName priceDiscAdmName; journalName = ProdImportDataStandardLESI::find().JournalName; if (journalName) { priceDiscAdmName = PriceDiscAdmName::find(journalName); if (priceDiscAdmName) { priceDiscAdmTable.clear(); priceDiscAdmTable.initFromPriceDiscAdmName(priceDiscAdmName); if (priceDiscAdmTable.validateWrite()) { priceDiscAdmTable.insert(); } } else { throw error ('O nome do diário de preço e desconto informado não existe'); } } else { throw error ('O nome do diário de preço e desconto não foi parametrizado'); } return priceDiscAdmTable; } private void createPriceDiscAdmTrans(ItemId _itemId, AmountCur _amountValue, PriceDiscAdmTable _priceDiscAdmTable) { PriceDiscAdmTrans priceDiscAdmTransLocal; str accountRelation; TableGroupAll accountCode; TableGroupAll itemCode; InventDim inventDim; TransDate fromDateLocal; TransDate toDateLocal; str itemRelation; itemCode = TableGroupAll::Table; itemRelation = _itemId; inventDim.InventSiteId = '001'; inventDim = inventDim::findOrCreate(inventDim); fromDateLocal = today(); priceDiscAdmTransLocal.clear(); priceDiscAdmTransLocal.initValue(); priceDiscAdmTransLocal.JournalNum = _priceDiscAdmTable.JournalNum; if (moduleInventCustVend == ModuleInventCustVend::Vend) { priceDiscAdmTransLocal.relation = PriceType::PricePurch; accountCode = TableGroupAll::Table; accountRelation = '000012'; } else if (moduleInventCustVend == ModuleInventCustVend::Cust) { priceDiscAdmTransLocal.relation = PriceType::PriceSales; accountCode = TableGroupAll::All; accountRelation = ""; } priceDiscAdmTransLocal.AccountCode = accountCode; priceDiscAdmTransLocal.AccountRelation = accountRelation; priceDiscAdmTransLocal.initFromAccountCode(); priceDiscAdmTransLocal.ItemCode = itemCode; priceDiscAdmTransLocal.ItemRelation = itemRelation; priceDiscAdmTransLocal.initFromItemCode(); priceDiscAdmTransLocal.InventDimId = inventDim.inventDimId; priceDiscAdmTransLocal.Amount = _amountValue; priceDiscAdmTransLocal.FromDate = fromDateLocal; priceDiscAdmTransLocal.ToDate = toDateLocal; if (!priceDiscAdmTransLocal.Currency) { priceDiscAdmTransLocal.Currency = CompanyInfo::standardCurrency(); } priceDiscAdmTransLocal.insert(); } |
07 Nov 2014
Posted by: Juliano Bachesque in: X++
Olá Pessoal,
Tudo bem?
Hoje precisei adicionar um texto de nota fiscal a uma ordem de venda no Microsoft Dynamics 2012 via X++. Estou compartilhando com vocês caso precisem algum dia.
public void generateDocumentReferenceExternal(SalesTable _salesTable, FiscalDocumentTextID_BR _textID) { DocuRef docuRefLocal; DocuRefExt_BR docuRefExt_BRLocal; FiscalDocumentSourceText_BR fiscalDocumentSourceTextLocal; if (_textID) { fiscalDocumentSourceTextLocal = FiscalDocumentSourceText_BR::findByTextID(_textID); if (fiscalDocumentSourceTextLocal) { try { ttsBegin; docuRefLocal.RefTableId = _salesTable.TableId; docuRefLocal.RefRecId = _salesTable.RecId; docuRefLocal.RefCompanyId = _salesTable.dataAreaId; docuRefLocal.TypeId = BrazilParameters::find().FiscalDocumentTextDocuTypeId; docuRefLocal.initFromFiscalDocumentSourceText_BR(fiscalDocumentSourceTextLocal); docuRefLocal.insert(); docuRefExt_BRLocal.DocuRef = docuRefLocal.RecId; docuRefExt_BRLocal.Type = FiscalDocumentTextType_BR::UserDef; docuRefExt_BRLocal.initFromFiscalDocumentSourceText(fiscalDocumentSourceTextLocal); docuRefExt_BRLocal.insert(); docuRefExt_BRLocal.initProcessReference(); ttsCommit; } catch { throw error(strFmt("Falha ao tentar gerar texto de nota fiscal para a ordem de venda %1", _salesTable.SalesId)); } } } } |
28 Jul 2014
Posted by: Juliano Bachesque in: X++
Olá Pessoal,
Tudo bem?
Hoje estava precisando preencher um valor de inscrição estadual para simular um faturamento e pesquisando encontrei um site bem legal que oferece outros vários tipos simulações além dos tradicionais CPF e CNPJ como inscrição estadual, RG, cadastro de pessoas, cadastro de empresas, cartão de crédito, senhas e outros. Estou compartilhando o link com vocês: http://www.4devs.com.br .