Project

General

Profile

1
<RESOURCE_PROFILE>
2
	<HEADER>
3
		<RESOURCE_IDENTIFIER value="637baddc-8c95-479d-8763-9847718d79f5_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
4
		<RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
5
		<RESOURCE_KIND value="TransformationRuleDSResources"/>
6
		<RESOURCE_URI value=""/>
7
		<DATE_OF_CREATION value="2018-06-04T11:15:30+00:00"/>
8
	</HEADER>
9
	<BODY>
10
		<CONFIGURATION>
11
			<IMPORTED/>
12
			<SCRIPT>
13
				<TITLE>SNSF to DB</TITLE>
14
				<CODE>
15
					<![CDATA[
16
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
17

    
18
    <xsl:param name="varDataSourceId"/>
19
    <xsl:param name="namespacePrefix" select="string('snsf________')"/>
20
    <xsl:param name="quote">"</xsl:param>
21

    
22
    <xsl:template match="/">
23
        <record>
24

    
25
            <xsl:copy-of select=".//*[local-name()='header']"/>
26
            <metadata>
27
                <ROWS>
28
                    <xsl:if test="string-length(normalize-space(.//column[@name='Project Title'])) &gt; 0 and string-length(normalize-space(.//column[@name='Project Number'])) &gt; 0">
29

    
30
                        <xsl:variable name="projectId" select="concat($namespacePrefix, '::', normalize-space(.//column[@name='Project Number']))"/>
31

    
32
                        <xsl:variable name="orgId" select="concat($namespacePrefix, '::', translate(normalize-space(.//column[@name='Institution']), ' ,.', '___'))"/>
33

    
34
                        <xsl:variable name="startDate" select=".//column[@name='Start Date']"/>
35
                        <xsl:variable name="endDate" select=".//column[@name='End Date']"/>
36
                        <xsl:variable name="quot">"</xsl:variable>
37
                        <ROW table="projects">
38
                            <FIELD name="_dnet_resource_identifier_">
39
                                <xsl:value-of select="$projectId"/>
40
                            </FIELD>
41
                            <FIELD name="id">
42
                                <xsl:value-of select="$projectId"/>
43
                            </FIELD>
44
                            <FIELD name="code">
45
                                <xsl:value-of select="normalize-space(.//column[@name='Project Number String'])"/>
46
                            </FIELD>
47
                            <FIELD name="startdate" type="date" format="dd.MM.yyyy">
48
                                <xsl:value-of select="$startDate"/>
49
                            </FIELD>
50
                            <FIELD name="enddate" type="date" format="dd.MM.yyyy">
51
                                <xsl:value-of select="$endDate"/>
52
                            </FIELD>
53
                            <FIELD name="title">
54
                                <xsl:value-of select=".//column[@name='Project Title']"/>
55
                            </FIELD>
56
                            <xsl:if test="number(.//column[@name='Approved Amount'])">
57
                                <FIELD name="fundedamount" type="float">
58
                                    <xsl:value-of select=".//column[@name='Approved Amount']"/>
59
                                </FIELD>
60
                                <FIELD name="currency">
61
                                    <xsl:value-of select="string('CHF')"/>
62
                                </FIELD>
63
                            </xsl:if>
64
                            <FIELD name="keywords">
65
                                <xsl:value-of select=".//column[@name='Discipline Name Hierarchy']"/>
66
                            </FIELD>
67
                            <!-- Commented jsonextrainfo because of bug in SNSF mining algorithm #2456#note-25  -->
68
                            <!--
69
                            <FIELD name="jsonextrainfo">
70
                                <xsl:value-of select="concat('{',$quot,'Discipline',$quot,':',$quot,.//column[@name='Discipline Name'],$quot,'}')"/>
71
                            </FIELD>
72
                            -->
73
                            <FIELD name="optional2">
74
                                <xsl:value-of select="concat('{',$quot,'Discipline',$quot,':',$quot,.//column[@name='Discipline Name'],$quot,'}')"/>
75
                            </FIELD>
76
                            <FIELD name="acronym"></FIELD>
77
                            <FIELD name="provenanceactionclass">sysimport:crosswalk:entityregistry</FIELD>
78
                            <FIELD name="provenanceactionscheme">dnet:provenanceActions</FIELD>
79
                            <FIELD name="collectedfrom">
80
                                <xsl:value-of select="$varDataSourceId"/>
81
                            </FIELD>
82
                            <!-- <FIELD name="???"><xsl:value-of select=".//AbstractNarration" /></FIELD> -->
83
                            <xsl:variable name="personName" select="normalize-space(.//column[@name='Responsible Applicant'])"/>
84
                            <xsl:if test="string-length($personName) &gt; 0">
85
                                <FIELD name="contactfullname">
86
                                    <xsl:value-of select="$personName"/>
87
                                </FIELD>
88
                            </xsl:if>
89
                        </ROW>
90
                        <xsl:if test="string-length(.//column[@name='Institution']) &gt; 0">
91
                        <ROW table="dsm_organizations">
92
                            <FIELD name="_dnet_resource_identifier_">
93
                                <xsl:value-of select="$orgId"/>
94
                            </FIELD>
95
                            <FIELD name="id">
96
                                <xsl:value-of select="$orgId"/>
97
                            </FIELD>
98
                            <FIELD name="legalname">
99
                                <xsl:value-of select=".//column[@name='Institution']"/>
100
                            </FIELD>
101
                            <FIELD name="country">
102
                                <xsl:value-of select=".//column[@name='Institution Country']"/>
103
                            </FIELD>
104
                            <FIELD name="collectedfrom">
105
                                <xsl:value-of select="$varDataSourceId"/>
106
                            </FIELD>
107
                            <FIELD name="provenanceaction">sysimport:crosswalk:entityregistry</FIELD>
108

    
109
                            <FIELD name="optional1">
110
                                <xsl:value-of select=".//column[@name='University']"/>
111
                            </FIELD>
112
                        </ROW>
113

    
114
                        <ROW table="project_organization">
115
                            <FIELD name="_dnet_resource_identifier_">
116
                                <xsl:value-of select="concat($projectId, '@@', $orgId)"/>
117
                            </FIELD>
118

    
119
                            <FIELD name="project">
120
                                <xsl:value-of select="$projectId"/>
121
                            </FIELD>
122
                            <FIELD name="resporganization">
123
                                <xsl:value-of select="$orgId"/>
124
                            </FIELD>
125
                            <FIELD name="semanticclass">coordinator</FIELD>
126
                        </ROW>
127
                        </xsl:if>
128
                        <xsl:variable name="p0" select="normalize-space(.//column[@name='Funding Instrument Hierarchy'])"/>
129
                        <xsl:variable name="p1" select="normalize-space(.//column[@name='Funding Instrument'])"/>
130

    
131
                        <xsl:variable name="fundingId">
132
                            <xsl:choose>
133
                                <xsl:when test="(string-length($p0) &gt; 0) and (string-length($p1) &gt; 0)">
134
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0, '::', $p1)"/>
135
                                </xsl:when>
136
                                <xsl:when test="string-length($p0) &gt; 0">
137
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0)"/>
138
                                </xsl:when>
139
                                <xsl:when test="string-length($p1) &gt; 0">
140
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p1)"/>
141
                                </xsl:when>
142
                                <xsl:otherwise>
143
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF')"/>
144
                                </xsl:otherwise>
145
                            </xsl:choose>
146
                        </xsl:variable>
147

    
148
                        <ROW table="project_fundingpath">
149
                            <FIELD name="_dnet_resource_identifier_">
150
                                <xsl:value-of select="concat(normalize-space($fundingId),'@@', $projectId)"/>
151
                            </FIELD>
152
                            <FIELD name="funding">
153
                                <xsl:value-of select="normalize-space($fundingId)"/>
154
                            </FIELD>
155
                            <FIELD name="project">
156
                                <xsl:value-of select="$projectId"/>
157
                            </FIELD>
158
                            <FIELD name="startdate" type="date" format="dd.MM.yyyy">
159
                                <xsl:value-of select="$startDate"/>
160
                            </FIELD>
161
                            <FIELD name="enddate" type="date" format="dd.MM.yyyy">
162
                                <xsl:value-of select="$endDate"/>
163
                            </FIELD>
164
                        </ROW>
165

    
166
                    </xsl:if>
167
                </ROWS>
168
            </metadata>
169
        </record>
170
    </xsl:template>
171

    
172
</xsl:stylesheet>
173
]]>
174
				</CODE>
175
			</SCRIPT>
176
		</CONFIGURATION>
177
		<STATUS/>
178
		<SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
179
	</BODY>
180
</RESOURCE_PROFILE>
(26-26/29)