Tuesday, 1 October 2013

Stocks Calendar 2013-14

Finance Calender

Stocks watched:

Oil/Gas
  • Petrofac              (13.75 /13.50 -14.10 )
  • BP                       Suspended until end of Court Case
  • Bowleven
Property

Mining
Electricity 
Communication


Weekly Economics Events Diary for Validation

https://www.halifaxmarketwatch.co.uk/help_centre

US Futures Live

October 2013

4  Friday - US Unemployment Figures
17 Thursday - US Debt Ceiling Announcement




29-30 - US Federal Reserve Meeting (Tapering)
29 Tuesday - BP - Third Quarter results and dividend announcement - RESULT - Share Price jumped 20p on the morning of Tuesday 29th October 2013, overall jump was as increase of 5%.


November 2013

November 15


6  - BP 3rd Quarter Ex-Dividend

December 2013

06 - US Unemployment Figures




17-18 - US Federal Reserve Meeting (Associated with Summary of Economics Projection)







Santa Rally - 2013 - FTSE


Santa Rally - 2013 - DOW JONES





31 (Tuesday) - Colt Full Years Results 

January 2014

14 - TW Year End Trading Statement
15th (Wednesday) - US Government Funding to run out (as per the end of last year)]
22nd (Wedesday) - SSE Ex-Dividend Date
29-30 - US Federal Reserve Meeting (Tapering)

February 2014





Friday 7th February (Friday) - US Employment Figures/US Debt Ceiling Deadline
26 February (Wednesday) - PFC Full Trading Figures
5 - BP - Fourth Quarter results and dividend announcement (Estimate)

March 2014

Friday 7th (Friday) - US Employment Figures
1 - TW - Full Year Results/Trading Figures (Estimate)
18-19 - US Federal Reserve Meeting (Associated with Summary of Economics Projection)

April 2014

To Check: Urban Art Auction @ Bonhams
To Check: Urban Contemporary Art Auction @ Drewatts

4th -  (Friday) - US Employment Figures
17 - TW - Ex-Dividend (Estimate)
19 - PFC Dividend Record Date/Ex-Divided (Estimate)
30 - BP - First Quarter results and dividend announcement (Estimate)
29-30 - US Federal Reserve Meeting (Tapering)

May 2014

2nd May (Friday) - US Employment Figures
17 - VED - Interim Results
29-30 - US Federal Reserve Meeting (Tapering)

June 2014



July 2014

31st July - Taylor Wimpey - Half Year Trading Figures (Estimate)
29-30 - US Federal Reserve Meeting (Tapering)
30 - BP - Second Quarter results and dividend announcement (Estimate)

August 2014

7 - BP - Second Quarter ex-dividend (Estimate)

September 2014

16-17 - US Federal Reserve Meeting (Associated with Summary of Economics Projection)
20 - PFC Dividend Record Date/Ex-Divided (Estimate)

October 2014

28-29 - US Federal Reserve Meeting (Tapering)
30 - BP - Third Quarter results and dividend announcement (Estimate)

November 2014

7 - BP - Third Quarter ex-dividend (Estimate)
15 - VED - Interim Results

December 2014

16-17 - US Federal Reserve Meeting (Associated with Summary of Economics Projection)

Friday, 2 August 2013

CMD: How to check the time on Multiple Machines simultaneously using CMD

Creating and Saving a file with all the machine details

01. Create a new text file and for each machines IP add the following lines:

net time \\10.201.2.60
net time \\10.201.2.70
net time \\10.201.2.100
net time \\10.201.2.101
net time \\10.201.2.120
net time \\10.201.2.130
net time \\10.201.2.140
net time \\10.201.7.200
net time \\10.201.7.206
net time \\10.201.2.102
net time \\10.201.2.103
net time \\10.201.2.80
net time \\10.201.2.90
net time \\10.201.2.91
net time \\10.201.7.207

02. Save the file on your C Drive and call it Checktime.txt.
03. Change the file to a .bat file by changing the extension.

Running the .bat file 

04. Run the following commands:


05. You will find that a a file called TimeResults.txt will be generated in you're C Drive and if you open it will show all the machines and their times:

Current time at \\10.201.2.60 is 25/07/2013 11:20
Current time at \\10.201.2.70 is 25/07/2013 11:20
Current time at \\10.201.2.100 is 25/07/2013 11:20
Current time at \\10.201.2.101 is 25/07/2013 11:20
Current time at \\10.201.2.120 is 25/07/2013 11:20
Current time at \\10.201.2.130 is 25/07/2013 11:20
Current time at \\10.201.2.140 is 25/07/2013 11:20
Current time at \\10.201.7.200 is 25/07/2013 11:20
Current time at \\10.201.7.206 is 25/07/2013 11:20
Current time at \\10.201.2.102 is 25/07/2013 11:20
Current time at \\10.201.2.103 is 25/07/2013 11:20 
Current time at \\10.201.2.80 is 25/07/2013 11:20
Current time at \\10.201.2.90 is 25/07/2013 11:20
Current time at \\10.201.2.91 is 25/07/2013 11:20
Current time at \\10.201.7.207 is 25/07/2013 11:20

Note: An assumption is made that the machine that this command is run on has access to the other machines in the network i.e firewall rules allow access to  the machines is they are on different domains.

Friday, 28 June 2013

ADM: Adding Users to a new Responsibility + Handy SQL for Users/Views/Responsibilities

Using Application Deployment Manager to Deploy Responsibilities across Environments

Siebel Version: 8.1.1.9

I had a requirement recently to add thousands of Users to a particular view, I didn't have time to created a client side business service nor a .COM data loader so decided to use ADM. It turned out that ADM was the quickest and simplest way of meeting this requirement. 

I have added the steps taken:

STEP A - Generating the ADM XML from the Source Environment.


01. Create an Deployment Project
- Navigate to Site Map > Application Deployment Manager > Deployment Project
- Create a Record and for the Data Type Child Record select the Data Type 'Responsibility'.




02 Create a Deployment Session
- Navigate to Site Map > Application Deployment Manager > Deployment Session
- Create a record, pick in the Project Name you created in Step 1, select the Export to File flag.
- In the lower applet either select the Deployment Mode (Either Synchronise or Upsert).
- Provide a Deployment Filter to bring back the record you wish to export (e.g [Responsibility.Name] = 'Our Responsibility'), press the 'Validate Filter' button to ensure there are no Syntax Errors.



03 Generate and Export the XML.
- Click on the 'Deploy' Button to generate the ADM XML (Note: This will be exported to a folder on the Server)
- Supply folder to export the ADM XML too, this will be in the form of a network path. IMPORTANT: Ensure that this folder is accessible by the Siebel Application (i.e that that the folder is Shared).




STEP B - Manipulating the Generated XML.

So now Siebel will have generated three separate XML files, it is the second XML that we are interested in (as this is what we will manipulate and load back into Siebel (Target Environment).


          1-XXXXXX.ini
          1-XXXXXX_Responsibility.xml
          1-XXXXXX_Responsibility_des.xml


Changing the EAI Method
If you open up the XML up using Notepad++ we can actually change the EAI Method used against the Integration Object. If this is a new Responsibility with new Views/Users you most probably want 'Synchronize', in my case I needed to add a few thousand Users to an existing Responsibility so I used 'Upsert'.



Manipulating the XML Definition of Users

Siebel out the box will spit out the XML Definition of the User IC containing many fields that we simply don't need, in my case I had a thousands of Users to add with just their LOGIN ID's to identify them. So I needed to adjust the User XML definition so that I just needed to supply the LOGIN details and Siebel would still process the record.

So this is what I did:

          (a) Rip out all the XML bwtween <ListOfUser> and </ListOfUser>, thus there are no Users in the XML.
          Note: Incidentally if you want to remove all the Users against a Responsibility, just run a 
          Synchronize with no Users and this is a very quick way of disassociating a significant number of 
          users from a Responsibility.



           (b) Re-Format the XML for Users and add it back in
            We can use the following XML to define each User where the User Login is SIEBELUSER1:

<User><_sblesc_und_undPROPERTIES_und_und><Login_spcName>
SIEBELUSER1</Login_spcName><Login_spcDomain></Login_spcDomain></_sblesc_und_undPROPERTIES_und_und></User>


   
        One can regenerate the XML for thousand if Users by using Excel to concatenate the Left Hand side of the
        XML, followed by the User Login (taking case that there are no spaces caught up in the XML) and then the
        Right hand side of the XML.

        This re-generated XML excel can be pasted back into the original Responsibility XML.







     The full XML for each User record should show (once re-indented using Notepad++): 

        


STEP C - Loading the updated XML into the Target Environment.

To load the XML back into Siebel navigate back Site Map > Application Deployment Manager > Deployment Sessions. On the Deployment Sessions List Applet click on Menu Button > Deploy from Local File, pick the file that you generated in Step B.





SQL to help withs Users/Views/Responsibilities

SQL to list all Views that are associated to a Responsibility:

 select A.NAME,
 S_APP_VIEW.NAME
 from  SIEBEL.S_RESP A
 left outer join SIEBEL.S_APP_VIEW_RESP C
                  on A.ROW_ID = C.RESP_ID
 left outer join SIEBEL.S_APP_VIEW
                  on C.VIEW_ID = S_APP_VIEW.ROW_ID
 where A.NAME in ('Any Old Resp 1', 'Any Old Resp 2')


SQL to list all Responsibilities associated to a View/s:

 select A.NAME,
 S_RESP.NAME
 from  SIEBEL.S_APP_VIEW A
 left outer join SIEBEL.S_APP_VIEW_RESP C
                  on A.ROW_ID = C.VIEW_ID
 left outer join SIEBEL.S_RESP
                  on C.RESP_ID = S_RESP.ROW_ID
 where A.NAME in ('Any Old View 1''Any Old View 2')


SQL to list all  Responsibilities used by specified Users
(Where the Users ID are Supplied)

 select A.NAME,
 count(*)
 from
 SIEBEL.S_RESP A
 left outer join  SIEBEL.S_PER_RESP C
                 on  A.ROW_ID = C.RESP_ID
 left outer join  SIEBEL.S_USER
                 on  C.PER_ID = S_USER.ROW_ID
where S_USER.LOGIN  in ('User1', 'User2', 'User2', 'User3')
Group By A.NAME


select A.NAME
 from  SIEBEL.S_RESP A
 left outer join  SIEBEL.S_PER_RESP C
                 on  A.ROW_ID = C.RESP_ID
 left outer join  SIEBEL.S_USER
                 on  C.PER_ID = S_USER.ROW_ID
where S_USER.LOGIN  in ('User1')
ORDER BY NAME ASC

SQL to list the number of Users using a Responsibility
(Where the Users ID are Supplied)

 select A.NAME,
 count(*)
 from
 SIEBEL.S_RESP A
 left outer join  SIEBEL.S_PER_RESP C
                 on  A.ROW_ID = C.RESP_ID
 left outer join  SIEBEL.S_USER
                 on  C.PER_ID = S_USER.ROW_ID
where A.NAME  in ('Siebel Responsibility')

Group By A.NAME


SQL to list all Users by Login using a Responsibility
(Where the Users ID are Supplied)

 select
   A.NAME,
 
 S_USER.LOGIN from  SIEBEL.S_RESP A
 left outer join  SIEBEL.S_PER_RESP C
                 on  A.ROW_ID = C.RESP_ID
 left outer join  SIEBEL.S_USER
                 on  C.PER_ID = S_USER.ROW_ID
where A.NAME  in ('Siebel Responsibility')




Does a User have a Particular View

   select
   A.NAME,
   D.FST_NAME,
   D.LAST_NAME,
   JOB_TITLE,
  F.LOGIN from  SIEBEL.S_RESP A
 left outer join  SIEBEL.S_PER_RESP C
                 on  A.ROW_ID = C.RESP_ID
 left outer join  SIEBEL.S_USER F
                 on  C.PER_ID = F.ROW_ID
left outer join SIEBEL.S_CONTACT D
 on F.PAR_ROW_ID = D.ROW_ID
where A.NAME LIKE '%xyz%'


Wednesday, 5 June 2013

Siebel F9 Integration with Siebel 8.1.1.4 Onwards via Outlook 2007 / 2010
This information is originally provided with Oracle Document ID 1409093.1

This document outlines the instructions needed to integration Siebel’s F9 Email functionality with Microsoft Outlook 2007 and 2010, please follow all instructions and also check other referenced knowledge items in the parent knowledge document.

Without this configuration if you instigate an outlook email via the F9 functionality in Siebel, pick an email template and subsequently update the email Title/Body and the

Note: There is an accompanying bit of VBA Code that can be found along with Oracle Document ID 1409093.1 that is not included in this blog, the solution will not work without the code. You can find the code if you look up the Document ID on Oracle Supportweb.

1. After opening Outlook, Choose Tools -> Options -> [Mail Format] tab
   a. Choose RICH TEXT under ‘Compose in this message format’




2. Click “International Options
     a. Uncheck “Auto select encoding for outgoing messages”
     b. In Preferred encoding for outgoing messages, choose “Unicode (UTF-8)” (Optional)




3. Go to Tools -> Forms > Design a Form…
    a. Look in “Standard Forms Library” and choose Message, click Open



The newly created Message Form should appear like the following -





4. In the Forms Designer within the Developer tab, in the Form group, choose “View Code




5. Refer back to the Knowledge Article, and open attachment Form-Script.txt
    a. Copy and Paste the entire contents of the VBScript “Form-Script.txt” into the script editor
    b. Choose File -> Close
    [Note: I have not exposed the script that needs to be added]




6. Returning back to the Form Designed, choose the ‘All Fields’ tab.




7. Click on the ‘New’ button in the lower-left corner
a. Enter “Activity ID” for the Name





8. Repeat the steps from step 7.a to create the following user-defined fields and enter temp into their values. Please note that you MUST enter some temporary value




9. Now from the “Select From” dropdown list, choose “User-defined fields in this item” and THEN REMOVE the values for all the user-defined fields you’ve entered in the last step
(Remove the temporary value, such as ‘temp’ so that the Value is blank) 
(Note: The SiebelEmailFormat field is only applicable to versions greater than 7.5.3)




10. Click on the Properties tab
     a. Enter a version number in “Version”, such as 1.0
     b. Verify that “Send form definition with item” is Unchecked
     c. Proceed to “File -> Save As…” to save it as an Outlook Template
Publish Outlook Form using the Outlook Template









Publish Outlook Form using the Outlook Template


11. Within the Developer Tab in the Forms Designer, click Publish then Publish Form As
     a. Click Publish





12. If you see the following popup, select YES to over-write existing form




13. Close the Outlook window. If you see the following popup, CLICK NO as you DO NOT want to save this email draft.





Additional Information can be found in: How to Configure and Setup F9 [File > Send Email] Microsoft Outlook Integration (Doc ID 1140543.1)

Thursday, 30 May 2013

Installing Oracle Client 11.0.7.0 on Windows 7 Enterprise for Siebel

Installing Oracle Client 11.0.7.0 on Windows 7 Enterprise: Steps Taken

 Next

 
Next

Ensure that you 'User Verify' the first two checks (you are effectively manually overriding the errors)
Next

Next
Allow Access
Next
Finish

Exit
Yes

Post-Requisite Tasks

01. Ensure that the host file (C:\Windows\System32\drivers\etc\ is updated on the machine to include relevant database server/IP translations, otherwise you may hit issues when attempting to run SQL Developer.

02.  Update  TNSNAMES.ORA (C:\Oracle\product\11.1.0\client_1\network\) with appropriate database entries.

03. Configure and run the SQL Developer in order to verify that the Oracle Client works.

     Note: When initially running the SQL Developer you may be requested for the Java.exe, this can be found in the following location:





Tuesday, 21 May 2013

CMD: Tools for Testing Network Connectivity

Tools for testing network connectivity between a Client (Source) and a Database (Destination)

Issue: Recently I had to install an Oracle Client on a machine that was going to run Siebel Tools along with OBIEE, the machine was on network A and the Database was on network B. I was skeptical that the connectivity was there to allow the two to talk to each other. 

I have listed the steps carried out during installation and listed a number of handy tools that can be used to identify if there are any network issues.

Actions Carried Out:

- Installed Oracle Client 11.1.0.7.0 on Windows 7 Enterprise Machine
- Ensured that Host File (C:\WINDOWS\system32\drivers\etc\hosts) was updated with the Database Server Names and IP Addresses (e.g SERVER IP SERVER NAME / 11.191.2.111 DBSERVERNAME)
- Updated the TNSNAMES.ORA with the relevant entries for the Database.
- Opened up SQL Developer to connect to the Database to verify connectivity, the TNS entries were picked up find from the TNSNAMES.ORA file.

Error Given:

When trying to connect from the SQL Developer to the Database I got the following Error Message: "Status - Failure - The Network Adapter could not establish the connection"





I suspected that as the Source and the Destination were on separate networks there would be a firewall in between, this firewall would actually consist of a Firewall on Network A to talk to Network B AND a Firewall on Network B to talk to Network A. 

Thus both these firewalls would need to have to be updated, the update would take the form of allowing traffic through from specified IP Source on a specific port identified in the TNSNAMES. ORA.

STEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = MANTESTNPSRAA01-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = MANTESTNPSRAA02-vip)(PORT = 1521))
    (LOAD_BALANCE = TRUE)
    (FAILOVER = TRUE)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = STEST.WORLD)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
      )
    )

  )


Tests Carried Out

Test 1: TNSPING 

TNSPING is a utility that determines whether or not a service (for example, an Oracle database, an Oracle Names Server or any other Oracle service) on a Net8 network can be successfully reached. 

This concludes that the Destination identified in the TNSNAMES.ORA file is up and running on the network, it does not conclude that the Source can communicate to the destination via a specific Port.






Test 2: TELNET

The Telnet command is a conclusive way to confirm that Machine A can communicate with Machine B over a networks/s or Domains. The command must be repeated successfully from Machine B to Machine A to comfirm that both machines can communicate with each other (i.e traffic can be passed both ways).
If we want to connect set to say STEST (IP Address is 10.199.2.100) and Port used to connect to it is 1521, the client should be able to telnet to the IP Address via the Port.

This would conclude that the Source and Destination can definitely communicate with each other:



Unfortunately in my case I got:


Telnet failed to connect.

Test 3: Using Microsoft Port Query

I found this utility on the Microsoft website which allows you to PING to a machine via a specific port, so I thought I'd run it to see if it could give me a bit of granularity not provided by either the TELNET nor TNSPING tools.

Download:
Information:

I down loaded this and it's a fantastic UI Tool that consist of a Batch file/UI Component that you can run, this is the result given:



The result tells me that the Port 1521 is FILTERED ( I was hoping for LISTENING).
The response indicates that the target port is being filtered. PortQry did not receive a response from the target port. A process may or may not be listening on the target port. If the Source Machine had been added to the rules on that Port on the Destination it would show LISTENING.


Test 4: NETSTAT

The netstat command is used to display very detailed information about how your computer is communicating with other computers or network devices.
Specifically, the netstat command can show details about individual network connections, overall and protocol-specific networking statistics, and much more, all of which could help troubleshoot certain kinds of networking issues.



Test 5: Using Trace Route Command

Tracert is a command which can show you the path a packet of information takes from your computer to one you specify. It will list all the routers it passes through until it reaches its destination, or fails to and is discarded. In addition to this, it will tell you how long each 'hop' from router to router takes.


NSLOOKUP/NBTSTAT Commands

Useful command that convert the IP Address of a machine into it's Name/Hostname on the network. NSLOOKUP uses the DNS Server to look up the IP Address whereas NBTSTAT does not.




Enabling Telnet on a Windows 7 Machine



GROUP POLICY

How to generate a HTML files of all the Group Policies that apply to a user on that machine:


Navigate through to C:\Windows\System32 and you should find a generated file called: report.html - This will hold all the Groups Policy Rules that have been applied for that user on that machine.

How to list Local Group Policy on a Machine


This will open the following console:




Useful Resources:
Handy resource that explain the principles behind Networks and Firewalls.
http://www.remotelan.net/tutorials/ms-dos/top_10.php
https://kb.wisc.edu/page.php?id=903