Tuesday, 28 August 2012

Resolving SqlServer Error 1069


 
I was getting this Error while installing reporting service tools..
 
 
 
 
 
 
In the Reporting services configuration manager the reporting server was not starting and this exception was shown:

 


 
 
 

 

How to Resolve:


1)      In the Reporting Services Configuration Manager go to Service Account tab.

2)      Make sure you enter your Current User Account and Password if your password was changed.   

3)      Now, revalidate your pre- requisites.
 
 
I believe it was helpful..

 

 

 

 

Thursday, 23 August 2012

Implementing The Enhanced Number Sequence Framework In Dynamics AX 2012:


Overview


Number sequencing is an essential feature in an Enterprise Resource Planning (ERP) system. Microsoft Dynamics
® AX employs a number sequence framework to generate alphanumeric number sequences. The primary purpose of the number sequence framework is to provide unique, user-friendly identifiers while maintaining a continuous or noncontinuous alphanumeric sequence.


There are two main concepts in Number Sequence Framework.


· Segments:

Is a data entity such as legal entity, operating unit, or fiscal calendar period that can be used to define a number sequence. In the enhanced number sequence framework, a number sequence can have more than one segment.

e.g) J-20-Jan11 is a combination of multiple segments.


· Scope:

Is a valid combination of segments used for a specific transaction or master data entity.

e.g.) Company + Fiscal Calender Period.


Steps


· Create an EDT of type String. In this Example I will use CustGroupId.

· Open the NumberSeqModuleCustomer class in the Application Object Tree (AOT), and add the following code to the bottom of the loadModule() method:

datatype.parmDatatypeId (extendedTypeNum (CustGroupId));
datatype.parmReferenceHelp ("Customer group ID");
datatype.parmWizardIsContinuous (false);
datatype.parmWizardIsManual (NoYes::No);
datatype.parmWizardIsChangeDownAllowed (NoYes::Yes);
datatype.parmWizardIsChangeUpAllowed (NoYes::Yes);
datatype.parmWizardHighest (999);
datatype.parmSortField (20);
datatype.addParameterType (NumberSeqParameterType::DataArea,true, false);
this. Create(datatype);


· Create a new job with the following code and run it:


Static void NumberSeqLoadAll (Args _args)

{

      NumberSeqApplicationModule::loadAll();
}


· In the Organization administration | Common | Number sequences | Number sequences generate number sequence. Delete everything apart from the lines where Area is Accounts receivable and Reference is Customer group.


· Locate the CustParameters table in the AOT and create the following method:



Public server static NumberSequenceReference numRefCustGroupId ()
{
         return NumberSeqReference::findReference ( extendedTypeNum(CustGroupId));
}


· In the AOT, open the CustGroup form and add the following code to its class declaration:

   NumberSeqFormHandler             numberSeqFormHandler;


· Create a new method called numberSeqFormHandler() in the same form:


Public NumberSeqFormHandler numberSeqFormHandler()
 {
     if (!numberSeqFormHandler)
{
      numberSeqFormHandler = NumberSeqFormHandler::new Form(
      CustParameters::numRefCustGroupId().NumberSequenceId,
      element,
      CustGroup_ds,
      fieldNum(CustGroup,CustGroup));
}
      return numberSeqFormHandler;

}



· Override CustGroup data source's create() method with the following code:

Public void create (Boolean _append = false)
{
element. NumberSeqFormHandler ().formMethodDatasourceCreatePre ();
super (_append);
element. NumberSeqFormHandler ( ).formMethodDatasourceCreate ();
}



· Override its delete() method with the following code:

Public void delete ()

{
ttsBegin;
element.numberSeqFormHandler().formMethodDatasourceDelete ();
super ();
ttsCommit;
}

· override its write () method with the following code:

Public void write()
{
ttsBegin;
super();
element.numberSeqFormHandler().formMethodData sourceWrite();
ttsCommit;
}

· Override its validateWrite() method with the following code:

Public boolean validateWrite ()
{
boolean ret;
ret = super();
ret = element.numberSeqFormHandler( ).formMethodDatasourceValidateWrite(ret)&& ret;
return ret;
}


· Override its LinkActive() method with the following code:

Public void linkActive()
{
element.numberSeqFormHandler ( ).formMethodDatasourceLinkActive();
super();
}


· Finally, override the form's close() method with the following code:


Public void close ()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose ();
}
super();
}


· Open Accounts receivable | Setup | Customers | Customer groups to test and create new entries.