Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 26 Next »

We need a new API for communicating START Replacement forms for Backup against NetBill.

There is already an old API for talking between old START and NetBill, but we are creating a new interface as we are changing the arguments.

From the perspective of ServiceNow, we need the methods:

  • add() provides a netid, nodename, other arguments to create a node
  • delete() provide a nodename, tell NetBill to delete the record
  • getBilling() provide a netid, receive whether or not PTAEO required
  • getNodeList() provide a netid, receive a list containing zero or more nodename(s) that are associated with that netid
  • getNodeDetails() provide a nodename, receive the details for that nodename
  • update() provide a nodename, provide arguments to change on the node

add()

Arguments for add:
netid of owner
nodename (needs to be unique, and NOT exist already in the system)
client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings

 
 We need charge_cd as one of the input arguments

Add method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.

PTAEO details

PTAEO consists of five strings:

  1. project
  2. task
  3. award
  4. expenditure
  5. organization

Note that it's superfluous for us to pass around the Expenditure code. The E code is consistent for all Central Campus Backup items, thus the value will always be '832170'. We could drop this value from being passed, but for future flexibility we should leave it in the API.

Interval, possible values:

Interval is coded as a string. These values are shown to the user:

None – I will backup manually
12:00AM – 12:29AM
12:30AM – 12:59AM
1:00AM – 1:29AM
1:30AM – 1:59AM
2:00AM – 2:29AM
2:30AM – 2:59AM
3:00AM – 3:29AM
3:30AM – 3:59AM
4:00AM – 4:29AM
4:30AM – 4:59AM
5:00AM – 5:29AM
5:30AM – 5:59AM
6:00AM – 6:29AM
6:30AM – 6:59AM
7:00AM – 7:29AM
7:30AM – 7:59AM
8:00AM – 8:29AM
8:30AM – 8:59AM
9:00AM – 9:29AM
9:30AM – 9:59AM
10:00AM – 10:29AM
10:30AM – 10:59AM
11:00AM – 11:29AM
11:30AM – 11:59AM

We will encode these for passing back and forth as zero-padded, military time, first four characters of the string to the api:

None
0000
0030
0100
0130
0200
0230
0300
0330
0400
0430
0500
0530
0600
0630
0700
0730
0800
0830
0900
0930
1000
1030
1100
1130

Please use format INCR1130, INCR1100 etc.

delete()

Arguments for delete:
netid of owner
nodename (needs to be unique, and exist)
datestamp for date to delete, formatted as Oracle date (31-JAN-13). This is awkward for ServiceNow, but native for NetBill. Furthermore, ServiceNow already has a method that does this for previous Oracle interactions.

we don't need netid as input argument.

Delete method needs to return an error code indicating whether or not the delete request was accepted, and for errors should indicate the problem with the data.

getBilling()

Arguments for getBilling:
netid of owner

getBilling method needs to return an error code indicating whether or not the getBilling request was accepted. If no error, also needs to return:

whether a PTAEO is required

We can put this return value as out parameter in oracle function. Can webmethods support it?

getNodeList()

Arguments for getNodeList:
netid of owner

getNodeList method needs to return an error code indicating whether or not the getNodeset request was accepted. If no error, also needs to return:

  • a count of nodes. zero or more.
  • a comma-delimited list, containing zero or more nodenames
    each nodename is received in a single string, comma separated, no spaces

We have a view for this. Can webmethods use it, i.e. select * from xxx_NodeList_V where owner_netid=? and return required values?

Sample nodename strings

  • "tanner,cooper,radar"
  • "" (empty set)
  • "zuse"

getNodeDetails()

Arguments for getNodeDetails:
nodename of node

getNodeDetails method needs to return an error code indicating whether or not the getNodeDetails request was accepted. If no error, also needs to return:

  • returns:
    nodename (needs to be unique, and NOT exist already in the system)
    client category (DS,MW,WS)
    Client OS (Windows, Mac, Unix)
    interval (backup time, or never)
    PTAEO, passed as five separate strings

update()

Arguments for update:
netid of owner
nodename (needs to be unique, and already exist)
client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings


We need charge_cd as one of the input arguments, we don't netid as input argument.

update method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.

Outstanding questions

  1. What's a charge code (name and / or number)? Do I need to pass that with everything I send back and forth to netbill?
  2. Why would we care whether or not somebody is a student? Is there relevance to billing? ServiceNow already knows this information, and apparently NetBill already knows also. Do we really need to pass that back and forth?

Process

Each group has responsibilities to get this process moving.

DBA group

DBA group needs to provide a utility account to Oracle for granting access. The account needs to work in ACS3, ACS2, ACS1 Oracle instances. The account will be called wm_service_now.

Rod Gustavson's group

We need Rod's group to review the API as specified and confirm that this seems to be complete and sufficient for CRUD methods on these records.

We need new interface to NetBill to conform with the API as specified here.

Kazi's group.

We need new Webmethods SOAP / XML api to bridge between the Oracle environment of NetBill and the ServiceNow SOAP interface. Kazi's group cannot begin until Rod's work is nearly completed. Kazi will need method names to bind to in Oracle.

Jim's group

Jim's group needs to get the instance names of TSM to Rod's group. Jim's group may need to provide a test instance of TSM for verifying end-to-end functionality of SN -> webmethods -> netbill -> TSM.

David Backeberg's group

Create and maintain specification for API. Request Oracle account from DBAs. Create and maintain task list for backup automation project.

  • No labels