Banks are uniquely identified via a “SWIFT Code”. It’s an ISO Standard. Having an accurate SWIFT code for a given bank is of vital importance to anyone doing financial transactions. With mergers, moves, new branches, and so on, the SWIFT codes you do business with won’t change often, but they will change.

Thus, Philip wasn’t terribly surprised when he got a request to update a pile of SWIFT codes. He couldn’t make the change via the database, though, as no one had permission to do that. He couldn’t edit it through an application UI, because no one had ever built one.

Instead, he had to check out a Java web service from SVN, modify the hard-coded values in the code, deploy the service to production (an entirely manual process), and then invoke the web service via cURL.

      @GET
	@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
	@Path("/writeAccountTableOther/{namespace}")
	public Response writeAccountTableOther(@PathParam("namespace") String namespace) {		
		NamespaceManager.set(namespace);
		List<String> accounts = Arrays.asList( new String[] {
				"999,Initech Financial Svcs    	,ABC123   ",
				"998,Initech Investment          	,BBC123  " ,
				"997,Initech BIC                ,CBC123  " ,
				"996,Initrode Bank          	,DBC123  " ,
				"995,Initrode Comercial               	,ABC223  " ,
				"994,Initrode Industrial Bank           	,FFF123   ",
				"993,Initrode Millenium Bank                 	,GAB123   ",
				"992,Initech Holdings         	,QBC512   ",
				"991,Initech Spirit Bank             	,IIL512   "
		});

		for (String account : accounts) {
			String[] split = account.split(",");
			int i=0;
			Entity entity = new Entity("bni_other_acc", split[i].trim());
			entity.setProperty("NIBBank", split[i++].trim());
			entity.setProperty("Name", split[i++].trim());
			entity.setProperty("SwiftCode", split[i++].trim());
			DatastoreServiceFactory.getDatastoreService().put(entity);
		}						
		return Response.status(Response.Status.OK).entity("DONE").build();
	}

This was the only mechanism for modifying these data values.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!