Audit Command Language – Nested Scripts




Hi all, welcome to another post in the series ‘Audit Command Language Tutorial for Beginners’. We hope all our readers are able to follow along and able to learn something new with each new post. For all those joining us at this stage, please start at the top of the series to get the most benefit from these posts about Audit Command Language.

In this post we will be discussing an important concept of Nested scripts. This is the closest the Audit Command Language scripts come to the object oriented concept of programming. To be clear has nothing to do with the concept of objects as in C++ or Java. Rather, it is simply the modular approach to programming that is enabled with the nested scripts i.e. different scripts are performing specifically designed tasks so as to keep the program properly arranged.

Lets assume we have a data set is which lists details employee details. We can extract all sorts of information from such a data set. See example of data set below:

Here are a few pieces of information that can be  extracted from this data set. See below:

  1. Extract Country Codes in the data sets.
  2. Extract unique Work dept with total salaries paid across each dept.
  3. All employees hired before or after a certain date.
  4. All employee codes with total salaries paid.

Now all the above information can be extracted by scripting a single Audit Command Language script but it is possible that we may want to perform further analysis on data sets created for each of the above points and it would thus be more suitable to design the scripts individually for each such case. The layout of the scripts might look like as shown in the screenshot below:

All scripts labelled “Analysis” in the screenshot are each individual analysis case for any data set. Once all cases are scripted, the next step is to deign the flow of execution of the scripts. The flow can only be linear in nature in the Audit Command Language. Of course, the same script can be referred to as many times as required for any execution flow. At any stage in any script the flow of the calling other scripts can be done by using the Command ‘DO’. See ACL script example below:

Syntax: Do Analysis1

Simply using the “DO” command allows us to design the flow of any Audit Command Language project. Of course there are endless possibilities of flows that can be explored based on the type of analysis that you are undertaking. We have prepared a demo video showing how such project might look. See the video below:

 

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please look through our various posts for ACL script examples and ACL scripts commands. Please sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.

 




Audit Command Language – Recoffset Function




Welcome to another “cool” post in the series “Audit Command Language Tutorial for Beginners”. So far we have discussed various aspects such as functions, command/statements which are used for manipulating data to create new data columns/fields or new tables with additional information. All these functionalities are useful when the data is present in the correct format or straight forward in general. Very often, the data lines provided by clients are not straightforward and needs to be formatted before we can manipulate the data to draw meaningful analysis or conclusions.

For such instances Audit Command Language scripts provide further functionality to address data issues after importing into the ACL views and tables. In the next couple posts, we would be discussing two very important functions that are used to address these very issues. The first of these is the RecOffset function. This function allows the Audit Command Language tool, to read data from lines before or after the current line. Consider the data set in the screenshot below:

Lets say, we are trying to create a new field in this data set. The goal would be to create a new column where the values are taken from the column Dept Code but only from the next line. As shown in the screenshot below:

You can now imagine a case where the data lines are split into two or more rows and you are required to fetch the values of certain columns from the next or two rows down or even above the current data line. This can be accomplished by using the Recoffset Function. This function is used precisely for the reason as described above and shown in the screenshots above. Below is the syntax for this function as it used in Audit Command Language Scripts and Workspaces.

Syntax: RECOFFSET(Dept,1)

ACL Script example to create a new field using RECOFFSET Function

OPEN DEPT
DELETE FIELD TEST_Field OK
DEFINE FIELD TEST_Field COMPUTED AS
RECOFFSET(Dept,1)

Example in a workspace to create a new field using RECOFFSET Function

TEST_Field Computed
TEST_Field Computed
RECOFFSET(Dept,1)

This is a very important functionality provided in the Audit Command Language. It is crucial to understand the use of this function. It can be extremely handy in a tight spot when there is no other way to cleanse the data. The use of this function is also demonstrated in the video below:

 

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.




Audit Command Language – Between Function ()




Welcome to another post in the series ‘Audit Command Language Tutorial for Beginners’. A lot of important topics have been covered so far in these series of posts. We certainly hope, all our readers are benefiting and learning from these posts. For all those who have just stumbled on this website, we urge you to start at the beginner of this series so as to get full benefit.

In this post we will be discussing the Between function. This function is a logical function i.e. it returns the values as true or false. The Between function is used to test the simple condition of whether or not a certain value lies in a given range. This test could be applied for a numeric, date or a character series. This implies this function works with all three major data types supported by the Audit Command Language.

Syntax: BETWEEN(TEST VALUE ,MIN_RANGE, MAX_RANGE)

Example in a script to create a new field using BETWEEN Function

OPEN EMPMAST
DELETE FIELD TEST_Field OK
DEFINE FIELD TEST_Field COMPUTED AS
“TRUE” IF Between(HireDate,`19820101`,`19830101`)
“FALSE”

Example in a workspace to create a new field using BETWEEN Function

TEST_Field Computed
“TRUE” IF Between(HireDate,`19820101`,`19830101`)
“FALSE”

See below the result of the BETWEEN function.

Easy enough to use…yes? Just a couple pf things to remember when using this function. The Between function is always used as part of the conditional statement or when filtering out data. There are quite a few scenarios where this function can be useful. For instance, creation of fields, testing values (to create flags) in a column and creating sub sets from existing data sets. Check out the video demo below:

Give it a go and share your experiences. Please sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.

 




Audit Command Language – Views & Data Sets




Hello people. Welcome to another post in the ‘Audit Command Language Tutorial for Beginners’ series. Without any delay let us discuss an important concept that needs to be understood now that we have covered so many aspects of the tool to manipulate the data files, it becomes important to understand how the tool works with the data.

First let us understand specifically, the data files produced while processing an ACL Audit Command Language project. There are two main aspects to study here. The views and data sets. Let us consider the screenshot below:

When we are looking at the data in the GUI tool, it is essentially the view of the actual data and not the actual data. It is simply a visual representation of the data set. That means, that if any fields are added to a view by using the ‘Add Column’ option, any such fields would not actually be created. In the below screenshot we can see the new field ‘Test_Field’ has been created using the the GUI option. This field is not actually getting added to the data.

This feature can be tested by looking into the actual fields by pressing ‘CTRL + i’ keys. The pop screen lists the actual fields in the data set. In such a view any columns, which are added by using the GUI would not be listed. The screenshot below illustrates this feature.

In order to affect an actual change in the data set with regards to adding new columns/fields, Audit Command Language scripts should be preferably used since in most projects, the creation of new fields should be captured in logs to keep track of the changes to the project. Such changes directly affect an update in the .FIL files that get created for each of the data sets in any ACL Audit Command Language project. Please see a demonstration of the feature described above in the video below:

Such small concepts here and there are very critical in understanding how to work around the tool by using unconventional techniques in the tricky scenario, especially when you are short on time and have to meet urgent deadlines. Knowing such intricate details of the tool is always helpful and this applies for any tool that you may happen to work upon.

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.




Audit Command Language – Sort Statement




Welcome to another post in the ‘Audit Command Language Tutorial for Beginners’. We have covered a lot of ground in just the last few weeks. So far we have covered a range of functions and statements which should be enough for entry level data analytics professionals. In that spirit let’s keep building this knowledge base.

In this post we will be discussing the Sort statement. It is quite obvious as to what this statement is used. This statement is used to sort a data set. However, there is a surely a ACL specific twist related to this simple task.

First lets see how we use this command via the ACL GUI. In order to use the GUI to implement the command go to menu -> Data -> Sort Records… . This should result in a pop up window. It should appear as shown below in the screen shots below:

At this stage, click on ‘Sort on’ button to select the field on which to sort the table.

At this you can choose the field by moving it to right column. At this point, you can further click on the arrow icon to sort data ascending or descending.

Once you set up the pop up window as shown, you should be able to get the new sorted table ‘Test’. The syntax would appear as follows:

OPEN PAYROLL
SORT ON Gross_Pay TO “Test” OPEN

In order to sort the data descending, the script would read as follows:

OPEN PAYROLL
SORT ON Gross_Pay D TO “Test” OPEN

To further aid your understanding of this statement, please refer to the demo video shown below:

This statement is a simple enough to implement. It can be argued that it is not very useful for investigations or advanced analysis, but it must be noted that sorting data is generally an intermediate step to other major operations like Summarizing data or joining data.

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.




Audit Command Language – Summarize Statement




Welcome to another post in the ‘Audit Command Language Tutorial for Beginners’ series. We hope things are moving along nicely for all our readers. It has indeed been a long enough journey up to this point and it is certainly our hope that it has been fruitful so far.

We are going to continue with the posts exploring the Audit Command Language statements. In this post, we will be discussion the ‘Summarize’ statement.

The summarize statement performs a rather simple task but one which has quite an impact in any and all data analytics projects. Lets put it this way, if you haven’t found any major insights into your analytics projects, it simply means that the summarize statement has probably not come into play yet.

Before we discuss some of the most common uses of the statement, let us quickly go through the application portion i.e. syntax and GUI implementation.

Syntax:

OPEN PAYROLL
SUMMARIZE ON WorkDept SUBTOTAL Gross_Pay Net_Pay Tax_Amount OTHER Cheque_No TO “summ_test.FIL” OPEN PRESORT

It is important to understand what this statement is doing to get a grasp of the syntax. Firstly, it opens the table ‘Payroll’. Then the field on which the data set is to be summarized, will be provided. Here we are summarizing the data set on field ‘WorkDept’ i.e. the resulting table or view would only have the unique values present in the field ‘WorkDept’. The next part of the statement is listing fields (specifically numeric fields) to be totaled for each of the ‘WorkDept’ values in the data set. the PRESORT at the end of the statment indicates that the ‘Payroll’ data set is sort prior to the use of the statement. Please note, it is critical that a any data set be presorted before summarizing the same, else the results would be incorrect.

To summarize the resulting data set created from the above example would be displaying the total ‘Gross_Pay’, ‘Net_Pay’ & ‘Tax_Amount’ across each of the unique ‘WorkDept’ in the ‘Payroll’ data set.

To accomplish the same using the ACL GUI, please refer to screenshots below:

Go to Menu -> Analyze -> Summarize. Thereafter you should get a pop  up window. Update it as shown in the screenshots:

Please feel free to play around with the interface for this statement. It has a variety of options, all of which cannot be explored in just one post. We can create another post more specific to any specific queries that we may receive.

Additionally, you may prefer to the videos provided below for a demonstration of the summarize statement:
Part 1

Part 2

The above videos should provide even more clarity about the Summarize statement. This statement is a powerful statement because it provides the unique values in a specified column in a data set. Since this statement provides this specific information, it allows for numerous possibilities when combined joins and merges in the Audit Command Language tool overall. The scope of the analysis that can be undertaken simply by including this statement in your arsenal has more impact than all the functions combined. Not to get too dramatic about it, but once you grasp this concept well, you can pick it up very quickly in any scripting language very quickly and start being super productive from the start.

Try out these examples and keep experimenting. The more you fiddle around the more your learn.

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.




ACL Character Function – String() Function

Welcome to another post in the series ‘Audit Command Language tutorial for Beginners’. We are moving ahead with a brisk pace with character functions in the Audit Command Language. Hopefully, you are able to keep up and are finding the post useful for your purposes.

In this post, we are going to detail another simple but frequently used function. The String function. This function is used to convert numeric fields to to character fields. This has obvious usage in getting the data formatted correctly to perform transformations on the raw data.

Syntax: String(number, length)

Example in a script to create a new field using String Function

string-script

DELETE FIELD TEST_Field OK
DEFINE FIELD TEST_Field COMPUTED AS
String(Salary,10)

Example in a workspace to create a new field using String Function

string-workspace

TEST_Field Computed
String(Salary,10)

Both the above statements return the result where the numeric values in the column ‘Salary’ are returned as Character values in the new column ‘Test_Field’ shown in the screenshot below:

string-result

The above example illustrates the use of the function. The above example is of course an extreme since, you never need to convert a field like Salary to character. However, it demonstrated how to convert numeric field to character values. See a demo of the function in the video below:

Give it try and please share your thoughts and challenges.

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.




ACL Character Function – Length() Function

Hello again. It would seem at this point that we are making fine progress in learning the Audit Command Language. So far we have covered over 10 character functions. To give a context this is the extent of what you may learn while being in your new job as a fresh data analyst in the first two months (fluently at least). But there is still some way to go in the series ‘Audit Command Language tutorials for Beginners’, so we must keep on pushing through.

In this post we are going to detail the Length function. The goal of the function is pretty self explanatory. It returns the length of the character string in field and returns a new computed field. In most Audit Command Language scripts, this function is used to create a flag of sorts to test whether or not the length of a field is consistent. For instance, typically values in fields like ‘Business Unit’, ‘Account Number’, ‘Customer ID’ are more often than not defined in a scheme which has a fixed length. This function serves as a check to ensure data integrity in such cases.

Syntax: Length(String)

Example in a script to create a new field using Length Function

length-script

DELETE FIELD TEST_Field OK
DEFINE FIELD TEST_Field COMPUTED AS
Value(ProdNo,2)

Example in a workspace to create a new field using Length Function

length-workspace

TEST_Field Computed
Value(ProdNo,2)

Both the above statements return the result where the numbers in the column ‘Product Number’ are returned as Numeric values in the new column ‘Test_Field’ shown in the screenshot below:

length-result

As shown in the above example, we can obtain the length of the field Dept Code and as discussed earlier, we expect that it would be consistent at ‘2’ characters. If the same function would be applied to the field ‘ Dept. Name’ then we would see varied length. We will discuss in a later post how we can use this function as a flag to compute a new field. Please keep practicing and share your experience.You can see a demo of the function.

Please keep practicing and feel free to reach out to us with your valuable feedback and comments. Please go through the website to review ACL script examples and ACL script commands sign up for our newsletter, so that we may keep you posted on the latest activity on our website and Youtube channel.