:green_heart: Fix test.

:green_heart: Fix test.

jsoniq version "1.0";

(:
 : Copyright 2012-2014 28msec Inc.
 :)
(:~
 :
This module provides functionality for automatically fetching entities, etc, from the
 : appropriate profile.

 :
 : @author Ghislain Fourny
 :
 :)
module namespace multiplexer = "http://28.io/modules/xbrl/profiles/multiplexer";

import module namespace archives = "http://28.io/modules/xbrl/archives";
import module namespace entities = "http://28.io/modules/xbrl/entities";
import module namespace components = "http://28.io/modules/xbrl/components";
import module namespace concepts = "http://28.io/modules/xbrl/concepts";
import module namespace reports = "http://28.io/modules/xbrl/reports";

import module namespace companies = "http://28.io/modules/xbrl/profiles/sec/companies";
import module namespace fiscal-core = "http://28.io/modules/xbrl/profiles/sec/fiscal/core";
import module namespace sec-networks = "http://28.io/modules/xbrl/profiles/sec/networks";
import module namespace japan = "http://28.io/modules/xbrl/profiles/japan/core";

import module namespace seq = "http://zorba.io/modules/sequence";

(:~
 :
Return latest filings of entities and fiscal periods.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $entities a sequence of entity objects.
 : @param $fiscal-periods a set of fiscal periods such as "Q1", "Q2", "Q3", "Q4", "FY"
 :
 : @return the latest archives for given entities and fiscal periods.
 :)
declare function multiplexer:latest-filings(
  $profile-name as string,
  $entities as object*,
  $fiscal-periods as string*) as object*
{
  switch($profile-name)
  case "sec" return fiscal-core:latest-filings($entities, $fiscal-periods)
  case "japan" return
    japan:latest-filings($entities, $fiscal-periods)
  default return
    ()
};

(:~
 :
Retrieves entities depending on the profile.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $eid a sequence of EIDs.
 : @param $cik a sequence of profile-specific CIKs.
 : @param $tag a sequence of tags (e.g., indices, ALL, ...).
 : @param $ticker a sequence of stock exchange tickers.
 : @param $sic a sequence of industry group SIC codes.
 : @param $aid a sequence of archive IDs.
  :
 : @return the entities retrieved according to the profile specified.
 :)
declare function multiplexer:entities(
  $profile-name as string,
  $eid as string*,
  $cik as string*,
  $tag as string*,
  $ticker as string*,
  $sic as string*,
  $aid as string*) as object*
{
  switch($profile-name)
  case "sec" return
    for $entity in companies:companies(
      $cik,
      $tag,
      $ticker,
      $sic,
      $eid,
      $aid)
    order by $entity.Profiles.SEC.CompanyName
    return $entity
  case "japan" return
    for $entity in japan:entities($cik, $ticker, $eid, $tag)
    order by $entity.SubmitterNameAlphabetic
    return $entity
  default return
    entities:entities($eid)
};

(:~
 :
Retrieves archives depending on the profile.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $entities a sequence of entities or EIDs.
 : @param $fiscalPeriod a sequence of fiscal periods (Q1, Q2, Q3, FY).
 : @param $fiscalYear a sequence of fiscal years.
 : @param $filingKind a sequence of filing kinds to filter for.
 : @param $aid a sequence of AIDs.
 :
 : @return the archives retrieved according to the profile specified.
 :)
declare function multiplexer:filings(
  $profile-name as string,
  $entities as item*,
  $fiscalPeriod as string*,
  $fiscalYear as integer*,
  $filingKind as string*,
  $aid as string*) as object*
{
  switch($profile-name)
  case "sec" return fiscal-core:filings(
      $entities,
      $fiscalPeriod,
      $fiscalYear,
      $aid)
  case "japan" return japan:filings(
      $entities,
      $fiscalYear,
      $fiscalPeriod,
      $filingKind,
      $aid)
  default return (
      archives:archives($aid),
      archives:archives-for-entities($entities))
};

(:~
  :
Retrieves components depending on the profile.

  :
  : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
  : @param $archives a sequence of archive objects.
  : @param $cid a sequence of CIDs.
  : @param $concept a sequence of report element names.
  : @param $disclosure a sequence of disclosure names.
  : @param $role a sequence of network identifiers.
  : @param $exact-label a sequence of labels for exact matches.
  : @param $full-text-label a sequence of labels for full-text search.
  : searched.
  : @param $options additional options. among which

  :
MetadataOnly: to only get Archive and Role information.

  : </lu>
  :
  : @error multiplexer:ARCHIVE-MISSING if a AID is required but not provided.
  :
  : @return the components retrieved according to the profile specified.
:)
declare function multiplexer:components(
  $profile-name as string,
  $archive as object*,
  $cid as string*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*,
  $options as object?) as object*
{
  switch($profile-name)
  case "sec" return sec-networks:components(
    $archive,
    $cid,
    $concept,
    $disclosure,
    $role,
    $full-text-label)
  default return
    let $role as string* := if(empty($role))
                            then $components:ALL-ROLES
                            else $role
    let $archive as item* := if(empty($archive))
                             then $components:ALL-ARCHIVES
                             else $archive
    let $concept as item* := if(empty($concept))
                             then $components:ALL-CONCEPTS
                             else $concept
    let $exact-label as item* := if(empty($exact-label))
                            then $components:ALL-LABELS
                            else $exact-label
    return components:components-for(
      $archive,
      $role,
      $concept,
      $exact-label,
      {|
        $options,
        {
          ExtraFilter: {
           "Profiles.FSA.Disclosure" : { "$in" : [ $disclosure ] }
          }
        }[$profile-name eq "japan" and exists($disclosure)]
      |}
    )
};

(:~
  :
Retrieves components depending on the profile.

  :
  : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
  : @param $archives a sequence of archive objects.
  : @param $cid a sequence of CIDs.
  : @param $concept a sequence of report element names.
  : @param $disclosure a sequence of disclosure names.
  : @param $role a sequence of network identifiers.
  : @param $exact-label a sequence of labels for exact matches.
  : @param $full-text-label a sequence of labels for full-text search.
  :
  : @error multiplexer:ARCHIVE-MISSING if a AID is required but not provided.
  :
  : @return the components retrieved according to the profile specified.
:)
declare function multiplexer:components(
  $profile-name as string,
  $archive as object*,
  $cid as string*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*) as object*
{
  multiplexer:components(
    $profile-name,
    $archive,
    $cid,
    $concept,
    $disclosure,
    $role,
    $exact-label,
    $full-text-label,
    ())
};

declare function multiplexer:concepts(
  $profile-name as string,
  $archive as object*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*,
  $report as object?,
  $onlyNames as boolean) as object*
{
  switch(true)
  case exists($report)
    return
    let $map as object? := reports:concept-map($report)
    let $concepts-computable-by-maps as object* :=
        switch(true)
            case not exists($map) return ()
            case not exists($concept) return $map.Trees[]
            default return
                let $keys as string* := $map.Trees[].Name
                for $c as string in $concept[$$ = $keys]
                return ($map.Trees[])[$$.Name eq $c]
    let $mapped-names as string* := $concepts-computable-by-maps.To[].Name
    let $concepts-not-computable-by-maps as string* :=
        seq:value-except($concept, $mapped-names)
    let $results-not-computed-by-maps as object* :=
        if(exists($concepts-not-computable-by-maps))
        then
          multiplexer:concepts(
            $profile-name,
            $archive,
            $concepts-not-computable-by-maps,
            $disclosure,
            $role,
            $exact-label,
            $full-text-label,
            (),
            $onlyNames
          )
        else ()
    let $results-computed-by-maps as object* :=
        let $all-results as object* := multiplexer:concepts(
          $profile-name,
          $archive,
          $mapped-names,
          $disclosure,
          $role,
          $exact-label,
          $full-text-label,
          (),
          $onlyNames
        )
        for $c as object in $concepts-computable-by-maps
        for $result as object in
            for $candidate-concept in $c.To[].Name
            let $facts := $all-results[$$.Name = $candidate-concept]
            where exists($facts)
            count $n
            where $n eq 1
            return $facts
        let $map-concept := (for $candidate in $concepts-computable-by-maps
                            where $result.Name = (keys($candidate.To), $candidate.To[].Name)
                            return $candidate)[1]
        return
            copy $n := $result
            modify (
                replace value of json $n.Name with $map-concept.Name,
                insert json  { Origin : $result.Name } into $n)
            return $n
    return ($results-not-computed-by-maps, $results-computed-by-maps)

  case empty($disclosure) and empty($report) and empty($full-text-label)
    return
    let $role as string* := if(empty($role))
                            then $concepts:ANY_COMPONENT_LINK_ROLE
                            else $role
    let $concept as item* := if(empty($concept))
                             then $concepts:ALL_CONCEPT_NAMES
                             else $concept
    let $exact-label as item* := if(empty($exact-label))
                            then $concepts:ALL_CONCEPT_LABELS
                            else $exact-label
    return concepts:concepts(
      $concept,
      $archive,
      $role,
      $exact-label,
      { OnlyNames: $onlyNames}
    )
  default return
    let $components as object* :=
      multiplexer:components(
        $profile-name,
        $archive,
        (),
        $concept,
        $disclosure,
        $role,
        $exact-label,
        $full-text-label,
        { MetadataOnly: true })
    return concepts:concepts-for-components(
      $concept,
      $components,
      $exact-label,
      { OnlyNames: $onlyNames})
};

jsoniq version "1.0";

(:
 : Copyright 2012-2014 28msec Inc.
 :)
(:~
 :
This module provides functionality for automatically fetching entities, etc, from the
 : appropriate profile.

 :
 : @author Ghislain Fourny
 :
 :)
module namespace multiplexer = "http://28.io/modules/xbrl/profiles/multiplexer";

import module namespace archives = "http://28.io/modules/xbrl/archives";
import module namespace entities = "http://28.io/modules/xbrl/entities";
import module namespace components = "http://28.io/modules/xbrl/components";
import module namespace concepts = "http://28.io/modules/xbrl/concepts";
import module namespace reports = "http://28.io/modules/xbrl/reports";

import module namespace companies = "http://28.io/modules/xbrl/profiles/sec/companies";
import module namespace fiscal-core = "http://28.io/modules/xbrl/profiles/sec/fiscal/core";
import module namespace sec-networks = "http://28.io/modules/xbrl/profiles/sec/networks";
import module namespace japan = "http://28.io/modules/xbrl/profiles/japan/core";

import module namespace seq = "http://zorba.io/modules/sequence";

(:~
 :
Return latest filings of entities and fiscal periods.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $entities a sequence of entity objects.
 : @param $fiscal-periods a set of fiscal periods such as "Q1", "Q2", "Q3", "Q4", "FY"
 :
 : @return the latest archives for given entities and fiscal periods.
 :)
declare function multiplexer:latest-filings(
  $profile-name as string,
  $entities as object*,
  $fiscal-periods as string*) as object*
{
  switch($profile-name)
  case "sec" return fiscal-core:latest-filings($entities, $fiscal-periods)
  case "japan" return
    japan:latest-filings($entities, $fiscal-periods)
  default return
    ()
};

(:~
 :
Retrieves entities depending on the profile.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $eid a sequence of EIDs.
 : @param $cik a sequence of profile-specific CIKs.
 : @param $tag a sequence of tags (e.g., indices, ALL, ...).
 : @param $ticker a sequence of stock exchange tickers.
 : @param $sic a sequence of industry group SIC codes.
 : @param $aid a sequence of archive IDs.
  :
 : @return the entities retrieved according to the profile specified.
 :)
declare function multiplexer:entities(
  $profile-name as string,
  $eid as string*,
  $cik as string*,
  $tag as string*,
  $ticker as string*,
  $sic as string*,
  $aid as string*) as object*
{
  switch($profile-name)
  case "sec" return
    for $entity in companies:companies(
      $cik,
      $tag,
      $ticker,
      $sic,
      $eid,
      $aid)
    order by $entity.Profiles.SEC.CompanyName
    return $entity
  case "japan" return
    for $entity in japan:entities($cik, $ticker, $eid, $tag)
    order by $entity.SubmitterNameAlphabetic
    return $entity
  default return
    entities:entities($eid)
};

(:~
 :
Retrieves archives depending on the profile.

 :
 : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
 : @param $entities a sequence of entities or EIDs.
 : @param $fiscalPeriod a sequence of fiscal periods (Q1, Q2, Q3, FY).
 : @param $fiscalYear a sequence of fiscal years.
 : @param $filingKind a sequence of filing kinds to filter for.
 : @param $aid a sequence of AIDs.
 :
 : @return the archives retrieved according to the profile specified.
 :)
declare function multiplexer:filings(
  $profile-name as string,
  $entities as item*,
  $fiscalPeriod as string*,
  $fiscalYear as integer*,
  $filingKind as string*,
  $aid as string*) as object*
{
  switch($profile-name)
  case "sec" return fiscal-core:filings(
      $entities,
      $fiscalPeriod,
      $fiscalYear,
      $aid)
  case "japan" return japan:filings(
      $entities,
      $fiscalYear,
      $fiscalPeriod,
      $filingKind,
      $aid)
  default return (
      archives:archives($aid),
      archives:archives-for-entities($entities))
};

(:~
  :
Retrieves components depending on the profile.

  :
  : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
  : @param $archives a sequence of archive objects.
  : @param $cid a sequence of CIDs.
  : @param $concept a sequence of report element names.
  : @param $disclosure a sequence of disclosure names.
  : @param $role a sequence of network identifiers.
  : @param $exact-label a sequence of labels for exact matches.
  : @param $full-text-label a sequence of labels for full-text search.
  : searched.
  : @param $options additional options. among which

  :
MetadataOnly: to only get Archive and Role information.

  : </lu>
  :
  : @error multiplexer:ARCHIVE-MISSING if a AID is required but not provided.
  :
  : @return the components retrieved according to the profile specified.
:)
declare function multiplexer:components(
  $profile-name as string,
  $archive as object*,
  $cid as string*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*,
  $options as object?) as object*
{
  switch($profile-name)
  case "sec" return sec-networks:components(
    $archive,
    $cid,
    $concept,
    $disclosure,
    $role,
    $full-text-label)
  default return
    let $role as string* := if(empty($role))
                            then $components:ALL-ROLES
                            else $role
    let $archive as item* := if(empty($archive))
                             then $components:ALL-ARCHIVES
                             else $archive
    let $concept as item* := if(empty($concept))
                             then $components:ALL-CONCEPTS
                             else $concept
    let $exact-label as item* := if(empty($exact-label))
                            then $components:ALL-LABELS
                            else $exact-label
    return components:components-for(
      $archive,
      $role,
      $concept,
      $exact-label,
      {|
        $options,
        { ExtraFilter: { "Profiles.FSA.Disclosure" : { "$in" : [ $disclosure ] } } }[$profile-name eq "japan"]
      |}
    )
};

(:~
  :
Retrieves components depending on the profile.

  :
  : @param $profile-name the name of the profile (e.g., SEC, Japan, Generic).
  : @param $archives a sequence of archive objects.
  : @param $cid a sequence of CIDs.
  : @param $concept a sequence of report element names.
  : @param $disclosure a sequence of disclosure names.
  : @param $role a sequence of network identifiers.
  : @param $exact-label a sequence of labels for exact matches.
  : @param $full-text-label a sequence of labels for full-text search.
  :
  : @error multiplexer:ARCHIVE-MISSING if a AID is required but not provided.
  :
  : @return the components retrieved according to the profile specified.
:)
declare function multiplexer:components(
  $profile-name as string,
  $archive as object*,
  $cid as string*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*) as object*
{
  multiplexer:components(
    $profile-name,
    $archive,
    $cid,
    $concept,
    $disclosure,
    $role,
    $exact-label,
    $full-text-label,
    ())
};

declare function multiplexer:concepts(
  $profile-name as string,
  $archive as object*,
  $concept as string*,
  $disclosure as string*,
  $role as string*,
  $exact-label as string*,
  $full-text-label as string*,
  $report as object?,
  $onlyNames as boolean) as object*
{
  switch(true)
  case exists($report)
    return
    let $map as object? := reports:concept-map($report)
    let $concepts-computable-by-maps as object* :=
        switch(true)
            case not exists($map) return ()
            case not exists($concept) return $map.Trees[]
            default return
                let $keys as string* := $map.Trees[].Name
                for $c as string in $concept[$$ = $keys]
                return ($map.Trees[])[$$.Name eq $c]
    let $mapped-names as string* := $concepts-computable-by-maps.To[].Name
    let $concepts-not-computable-by-maps as string* :=
        seq:value-except($concept, $mapped-names)
    let $results-not-computed-by-maps as object* :=
        if(exists($concepts-not-computable-by-maps))
        then
          multiplexer:concepts(
            $profile-name,
            $archive,
            $concepts-not-computable-by-maps,
            $disclosure,
            $role,
            $exact-label,
            $full-text-label,
            (),
            $onlyNames
          )
        else ()
    let $results-computed-by-maps as object* :=
        let $all-results as object* := multiplexer:concepts(
          $profile-name,
          $archive,
          $mapped-names,
          $disclosure,
          $role,
          $exact-label,
          $full-text-label,
          (),
          $onlyNames
        )
        for $c as object in $concepts-computable-by-maps
        for $result as object in
            for $candidate-concept in $c.To[].Name
            let $facts := $all-results[$$.Name = $candidate-concept]
            where exists($facts)
            count $n
            where $n eq 1
            return $facts
        let $map-concept := (for $candidate in $concepts-computable-by-maps
                            where $result.Name = (keys($candidate.To), $candidate.To[].Name)
                            return $candidate)[1]
        return
            copy $n := $result
            modify (
                replace value of json $n.Name with $map-concept.Name,
                insert json  { Origin : $result.Name } into $n)
            return $n
    return ($results-not-computed-by-maps, $results-computed-by-maps)

  case empty($disclosure) and empty($report) and empty($full-text-label)
    return
    let $role as string* := if(empty($role))
                            then $concepts:ANY_COMPONENT_LINK_ROLE
                            else $role
    let $concept as item* := if(empty($concept))
                             then $concepts:ALL_CONCEPT_NAMES
                             else $concept
    let $exact-label as item* := if(empty($exact-label))
                            then $concepts:ALL_CONCEPT_LABELS
                            else $exact-label
    return concepts:concepts(
      $concept,
      $archive,
      $role,
      $exact-label,
      { OnlyNames: $onlyNames}
    )
  default return
    let $components as object* :=
      multiplexer:components(
        $profile-name,
        $archive,
        (),
        $concept,
        $disclosure,
        $role,
        $exact-label,
        $full-text-label,
        { MetadataOnly: true })
    return concepts:concepts-for-components(
      $concept,
      $components,
      $exact-label,
      { OnlyNames: $onlyNames})
};


added newline

added newline

jsoniq version "1.0";
module namespace japan = "http://28.io/modules/xbrl/profiles/japan/core";

import module namespace archives = "http://28.io/modules/xbrl/archives";
import module namespace entities = "http://28.io/modules/xbrl/entities";

declare function japan:entities(
    $cik as string*,
    $eid as string*,
    $tag as string*
) as object*
{
  let $eid := distinct-values((
    $cik ! ("http://info.edinet-fsa.go.jp " || $$ || "-000"),
    $eid
  ))
  return
    switch(true)
    case $tag = "ALL" return entities:entities()
    case exists($eid) return entities:entities($eid)
    default return ()
};

declare function japan:filings(
    $entities as item*,
    $fiscalYear as integer*,
    $fiscalPeriod as string*,
    $aid as string*) as object*
{
    archives:archives($aid),
    if($fiscalYear = 1)
    then
        for $a as object in archives:archives-for-entities($entities)
        where (empty($fiscalPeriod) or ($fiscalPeriod = "ALL") or $a.Profiles.JAPAN.DocumentFiscalPeriodFocus = $fiscalPeriod)
        group by $a.Entity
        return
            for $filing in $a
            group by $fy := $filing.Profiles.JAPAN.DocumentFiscalYearFocus
            order by $fy descending
            count $i where $i eq 1
            return $filing
    else
        for $a as object in archives:archives-for-entities($entities)
        where (empty($fiscalYear) or
               $fiscalYear = 0 or
               $fiscalYear = $a.Profiles.JAPAN.DocumentFiscalYearFocus)
               and (empty($fiscalPeriod) or ($fiscalPeriod = "ALL") or $a.Profiles.JAPAN.DocumentFiscalPeriodFocus = $fiscalPeriod)
        return $a
};


:green_heart: Fix test.

:green_heart: Fix test.

機械装置及び運搬具（純額）

その他有価証券評価差額金

退職給付に係る調整累計額

その他の包括利益累計額合計

[ {
      "Archive" : "S1002Q54",
      "Section" : "四半期連結貸借対照表",
      "Hypercube" : "Balance sheet",
      "SectionURI" : "http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_QuarterlyConsolidatedBalanceSheet",
      "HypercubeName" : "jppfs-cor:BalanceSheetTable",
      "ModelStructure" : [ {
        "Name" : "jppfs-cor:QuarterlyConsolidatedBalanceSheetHeading",
        "Label" : "四半期連結貸借対照表",
        "Kind" : "Abstract",
        "Depth" : 1,
        "Children" : [ {
          "Name" : "jppfs-cor:BalanceSheetTable",
          "Label" : "連結貸借対照表",
          "Order" : 1,
          "Kind" : "Hypercube",
          "Depth" : 2,
          "Children" : [ {
            "Name" : "jppfs-cor:ConsolidatedOrNonConsolidatedAxis",
            "Label" : "連結個別",
            "Order" : 1,
            "Kind" : "Dimension",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:ConsolidatedMember",
              "Label" : "連結",
              "Order" : 1,
              "Kind" : "Member",
              "Depth" : 4
            } ]
          } ]
        }, {
          "Name" : "jppfs-cor:BalanceSheetLineItems",
          "Label" : "連結貸借対照表",
          "Order" : 2,
          "Kind" : "LineItems",
          "Depth" : 2,
          "Children" : [ {
            "Name" : "jppfs-cor:AssetsAbstract",
            "Label" : "資産の部",
            "Order" : 1,
            "Kind" : "Abstract",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:CurrentAssetsAbstract",
              "Label" : "流動資産",
              "Order" : 1,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:CashAndDeposits",
                "Label" : "現金及び預金",
                "Order" : 1,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:NotesAndAccountsReceivableTrade",
                "Label" : "受取手形及び売掛金",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:Inventories",
                "Label" : "たな卸資産",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:OtherCA",
                "Label" : "その他",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:AllowanceForDoubtfulAccountsCA",
                "Label" : "貸倒引当金",
                "Order" : 5,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:CurrentAssets",
                "Label" : "流動資産合計",
                "Order" : 6,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:NoncurrentAssetsAbstract",
              "Label" : "固定資産",
              "Order" : 2,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:PropertyPlantAndEquipmentAbstract",
                "Label" : "有形固定資産",
                "Order" : 1,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:BuildingsAndStructuresNet",
                  "Label" : "建物及び構築物（純額）",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:MachineryEquipmentAndVehiclesNet",
                  "Label" : "機械装置及び運搬具（純額）",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:OtherNetPPE",
                  "Label" : "その他（純額）",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:PropertyPlantAndEquipment",
                  "Label" : "有形固定資産合計",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:IntangibleAssets",
                "Label" : "無形固定資産",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:InvestmentsAndOtherAssetsAbstract",
                "Label" : "投資その他の資産",
                "Order" : 3,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:InvestmentSecurities",
                  "Label" : "投資有価証券",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:NetDefinedBenefitAsset",
                  "Label" : "退職給付に係る資産",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:OtherIOA",
                  "Label" : "その他",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:AllowanceForDoubtfulAccountsIOAByGroup",
                  "Label" : "貸倒引当金",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:InvestmentsAndOtherAssets",
                  "Label" : "投資その他の資産合計",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:NoncurrentAssets",
                "Label" : "固定資産合計",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:Assets",
              "Label" : "資産合計",
              "Order" : 3,
              "Kind" : "Concept",
              "Depth" : 4,
              "IsNillable" : true,
              "IsAbstract" : false,
              "PeriodType" : "instant",
              "Balance" : "debit",
              "SubstitutionGroup" : "xbrli:item",
              "DataType" : "xbrli:monetaryItemType",
              "BaseType" : "xbrli:monetary",
              "ClosestSchemaBuiltinType" : "xs:decimal",
              "IsTextBlock" : false
            } ]
          }, {
            "Name" : "jppfs-cor:LiabilitiesAbstract",
            "Label" : "負債の部",
            "Order" : 2,
            "Kind" : "Abstract",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:CurrentLiabilitiesAbstract",
              "Label" : "流動負債",
              "Order" : 1,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:NotesAndAccountsPayableTrade",
                "Label" : "支払手形及び買掛金",
                "Order" : 1,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ShortTermLoansPayable",
                "Label" : "短期借入金",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:CommercialPapersLiabilities",
                "Label" : "コマーシャル・ペーパー",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:CurrentPortionOfBonds",
                "Label" : "1年内償還予定の社債",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:IncomeTaxesPayable",
                "Label" : "未払法人税等",
                "Order" : 5,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ProvisionCL",
                "Label" : "引当金",
                "Order" : 6,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:OtherCL",
                "Label" : "その他",
                "Order" : 7,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:CurrentLiabilities",
                "Label" : "流動負債合計",
                "Order" : 8,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:NoncurrentLiabilitiesAbstract",
              "Label" : "固定負債",
              "Order" : 2,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:BondsPayable",
                "Label" : "社債",
                "Order" : 1,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:LongTermLoansPayable",
                "Label" : "長期借入金",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ProvisionNCL",
                "Label" : "引当金",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:NetDefinedBenefitLiability",
                "Label" : "退職給付に係る負債",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:OtherNCL",
                "Label" : "その他",
                "Order" : 5,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:NoncurrentLiabilities",
                "Label" : "固定負債合計",
                "Order" : 6,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:Liabilities",
              "Label" : "負債合計",
              "Order" : 3,
              "Kind" : "Concept",
              "Depth" : 4,
              "IsNillable" : true,
              "IsAbstract" : false,
              "PeriodType" : "instant",
              "Balance" : "credit",
              "SubstitutionGroup" : "xbrli:item",
              "DataType" : "xbrli:monetaryItemType",
              "BaseType" : "xbrli:monetary",
              "ClosestSchemaBuiltinType" : "xs:decimal",
              "IsTextBlock" : false
            } ]
          }, {
            "Name" : "jppfs-cor:NetAssetsAbstract",
            "Label" : "純資産の部",
            "Order" : 3,
            "Kind" : "Abstract",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:ShareholdersEquityAbstract",
              "Label" : "株主資本",
              "Order" : 1,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:CapitalStock",
                "Label" : "資本金",
                "Order" : 1,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:CapitalSurplus",
                "Label" : "資本剰余金",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:RetainedEarnings",
                "Label" : "利益剰余金",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:TreasuryStock",
                "Label" : "自己株式",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ShareholdersEquity",
                "Label" : "株主資本合計",
                "Order" : 5,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:ValuationAndTranslationAdjustmentsAbstract",
              "Label" : "その他の包括利益累計額",
              "Order" : 2,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:ValuationDifferenceOnAvailableForSaleSecurities",
                "Label" : "その他有価証券評価差額金",
                "Order" : 1,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:DeferredGainsOrLossesOnHedges",
                "Label" : "繰延ヘッジ損益",
                "Order" : 2,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:RevaluationReserveForLand",
                "Label" : "土地再評価差額金",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ForeignCurrencyTranslationAdjustment",
                "Label" : "為替換算調整勘定",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:RemeasurementsOfDefinedBenefitPlans",
                "Label" : "退職給付に係る調整累計額",
                "Order" : 5,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:ValuationAndTranslationAdjustments",
                "Label" : "その他の包括利益累計額合計",
                "Order" : 6,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:MinorityInterests",
              "Label" : "少数株主持分",
              "Order" : 3,
              "Kind" : "Concept",
              "Depth" : 4,
              "IsNillable" : true,
              "IsAbstract" : false,
              "PeriodType" : "instant",
              "Balance" : "credit",
              "SubstitutionGroup" : "xbrli:item",
              "DataType" : "xbrli:monetaryItemType",
              "BaseType" : "xbrli:monetary",
              "ClosestSchemaBuiltinType" : "xs:decimal",
              "IsTextBlock" : false
            }, {
              "Name" : "jppfs-cor:NetAssets",
              "Label" : "純資産合計",
              "Order" : 4,
              "Kind" : "Concept",
              "Depth" : 4,
              "IsNillable" : true,
              "IsAbstract" : false,
              "PeriodType" : "instant",
              "Balance" : "credit",
              "SubstitutionGroup" : "xbrli:item",
              "DataType" : "xbrli:monetaryItemType",
              "BaseType" : "xbrli:monetary",
              "ClosestSchemaBuiltinType" : "xs:decimal",
              "IsTextBlock" : false
            } ]
          }, {
            "Name" : "jppfs-cor:LiabilitiesAndNetAssets",
            "Label" : "負債純資産合計",
            "Order" : 4,
            "Kind" : "Concept",
            "Depth" : 3,
            "IsNillable" : true,
            "IsAbstract" : false,
            "PeriodType" : "instant",
            "Balance" : "credit",
            "SubstitutionGroup" : "xbrli:item",
            "DataType" : "xbrli:monetaryItemType",
            "BaseType" : "xbrli:monetary",
            "ClosestSchemaBuiltinType" : "xs:decimal",
            "IsTextBlock" : false
          } ]
        } ]
      } ]
    } ],
    "actual" : [ {
      "Archive" : "S1002Q54",
      "Section" : "四半期連結貸借対照表",
      "Hypercube" : "Balance sheet",
      "SectionURI" : "http://disclosure.edinet-fsa.go.jp/role/jppfs/rol_QuarterlyConsolidatedBalanceSheet",
      "HypercubeName" : "jppfs-cor:BalanceSheetTable",
      "ModelStructure" : [ {
        "Name" : "jppfs-cor:QuarterlyConsolidatedBalanceSheetHeading",
        "Label" : "四半期連結貸借対照表",
        "Kind" : "Abstract",
        "Depth" : 1,
        "Children" : [ {
          "Name" : "jppfs-cor:BalanceSheetTable",
          "Label" : "連結貸借対照表",
          "Order" : 1,
          "Kind" : "Hypercube",
          "Depth" : 2,
          "Children" : [ {
            "Name" : "jppfs-cor:ConsolidatedOrNonConsolidatedAxis",
            "Label" : "連結個別",
            "Order" : 1,
            "Kind" : "Dimension",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:ConsolidatedMember",
              "Label" : "連結",
              "Order" : 1,
              "Kind" : "Member",
              "Depth" : 4
            } ]
          }, {
            "Name" : "jppfs-cor:BalanceSheetLineItems",
            "Label" : "連結貸借対照表",
            "Order" : 2,
            "Kind" : "LineItems",
            "Depth" : 3,
            "Children" : [ {
              "Name" : "jppfs-cor:AssetsAbstract",
              "Label" : "資産の部",
              "Order" : 1,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:CurrentAssetsAbstract",
                "Label" : "流動資産",
                "Order" : 1,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:CashAndDeposits",
                  "Label" : "現金及び預金",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:NotesAndAccountsReceivableTrade",
                  "Label" : "受取手形及び売掛金",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:Inventories",
                  "Label" : "たな卸資産",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:OtherCA",
                  "Label" : "その他",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:AllowanceForDoubtfulAccountsCA",
                  "Label" : "貸倒引当金",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:CurrentAssets",
                  "Label" : "流動資産合計",
                  "Order" : 6,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:NoncurrentAssetsAbstract",
                "Label" : "固定資産",
                "Order" : 2,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:PropertyPlantAndEquipmentAbstract",
                  "Label" : "有形固定資産",
                  "Order" : 1,
                  "Kind" : "Abstract",
                  "Depth" : 6,
                  "Children" : [ {
                    "Name" : "jppfs-cor:BuildingsAndStructuresNet",
                    "Label" : "建物及び構築物（純額）",
                    "Order" : 1,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:MachineryEquipmentAndVehiclesNet",
                    "Label" : "機械装置及び運搬具（純額）",
                    "Order" : 2,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:OtherNetPPE",
                    "Label" : "その他（純額）",
                    "Order" : 3,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:PropertyPlantAndEquipment",
                    "Label" : "有形固定資産合計",
                    "Order" : 4,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  } ]
                }, {
                  "Name" : "jppfs-cor:IntangibleAssets",
                  "Label" : "無形固定資産",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:InvestmentsAndOtherAssetsAbstract",
                  "Label" : "投資その他の資産",
                  "Order" : 3,
                  "Kind" : "Abstract",
                  "Depth" : 6,
                  "Children" : [ {
                    "Name" : "jppfs-cor:InvestmentSecurities",
                    "Label" : "投資有価証券",
                    "Order" : 1,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:NetDefinedBenefitAsset",
                    "Label" : "退職給付に係る資産",
                    "Order" : 2,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:OtherIOA",
                    "Label" : "その他",
                    "Order" : 3,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:AllowanceForDoubtfulAccountsIOAByGroup",
                    "Label" : "貸倒引当金",
                    "Order" : 4,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  }, {
                    "Name" : "jppfs-cor:InvestmentsAndOtherAssets",
                    "Label" : "投資その他の資産合計",
                    "Order" : 5,
                    "Kind" : "Concept",
                    "Depth" : 7,
                    "IsNillable" : true,
                    "IsAbstract" : false,
                    "PeriodType" : "instant",
                    "Balance" : "debit",
                    "SubstitutionGroup" : "xbrli:item",
                    "DataType" : "xbrli:monetaryItemType",
                    "BaseType" : "xbrli:monetary",
                    "ClosestSchemaBuiltinType" : "xs:decimal",
                    "IsTextBlock" : false
                  } ]
                }, {
                  "Name" : "jppfs-cor:NoncurrentAssets",
                  "Label" : "固定資産合計",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "debit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:Assets",
                "Label" : "資産合計",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "debit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:LiabilitiesAbstract",
              "Label" : "負債の部",
              "Order" : 2,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:CurrentLiabilitiesAbstract",
                "Label" : "流動負債",
                "Order" : 1,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:NotesAndAccountsPayableTrade",
                  "Label" : "支払手形及び買掛金",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ShortTermLoansPayable",
                  "Label" : "短期借入金",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:CommercialPapersLiabilities",
                  "Label" : "コマーシャル・ペーパー",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:CurrentPortionOfBonds",
                  "Label" : "1年内償還予定の社債",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:IncomeTaxesPayable",
                  "Label" : "未払法人税等",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ProvisionCL",
                  "Label" : "引当金",
                  "Order" : 6,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:OtherCL",
                  "Label" : "その他",
                  "Order" : 7,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:CurrentLiabilities",
                  "Label" : "流動負債合計",
                  "Order" : 8,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:NoncurrentLiabilitiesAbstract",
                "Label" : "固定負債",
                "Order" : 2,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:BondsPayable",
                  "Label" : "社債",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:LongTermLoansPayable",
                  "Label" : "長期借入金",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ProvisionNCL",
                  "Label" : "引当金",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:NetDefinedBenefitLiability",
                  "Label" : "退職給付に係る負債",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:OtherNCL",
                  "Label" : "その他",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:NoncurrentLiabilities",
                  "Label" : "固定負債合計",
                  "Order" : 6,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:Liabilities",
                "Label" : "負債合計",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:NetAssetsAbstract",
              "Label" : "純資産の部",
              "Order" : 3,
              "Kind" : "Abstract",
              "Depth" : 4,
              "Children" : [ {
                "Name" : "jppfs-cor:ShareholdersEquityAbstract",
                "Label" : "株主資本",
                "Order" : 1,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:CapitalStock",
                  "Label" : "資本金",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:CapitalSurplus",
                  "Label" : "資本剰余金",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:RetainedEarnings",
                  "Label" : "利益剰余金",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:TreasuryStock",
                  "Label" : "自己株式",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ShareholdersEquity",
                  "Label" : "株主資本合計",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:ValuationAndTranslationAdjustmentsAbstract",
                "Label" : "その他の包括利益累計額",
                "Order" : 2,
                "Kind" : "Abstract",
                "Depth" : 5,
                "Children" : [ {
                  "Name" : "jppfs-cor:ValuationDifferenceOnAvailableForSaleSecurities",
                  "Label" : "その他有価証券評価差額金",
                  "Order" : 1,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:DeferredGainsOrLossesOnHedges",
                  "Label" : "繰延ヘッジ損益",
                  "Order" : 2,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:RevaluationReserveForLand",
                  "Label" : "土地再評価差額金",
                  "Order" : 3,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ForeignCurrencyTranslationAdjustment",
                  "Label" : "為替換算調整勘定",
                  "Order" : 4,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:RemeasurementsOfDefinedBenefitPlans",
                  "Label" : "退職給付に係る調整累計額",
                  "Order" : 5,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                }, {
                  "Name" : "jppfs-cor:ValuationAndTranslationAdjustments",
                  "Label" : "その他の包括利益累計額合計",
                  "Order" : 6,
                  "Kind" : "Concept",
                  "Depth" : 6,
                  "IsNillable" : true,
                  "IsAbstract" : false,
                  "PeriodType" : "instant",
                  "Balance" : "credit",
                  "SubstitutionGroup" : "xbrli:item",
                  "DataType" : "xbrli:monetaryItemType",
                  "BaseType" : "xbrli:monetary",
                  "ClosestSchemaBuiltinType" : "xs:decimal",
                  "IsTextBlock" : false
                } ]
              }, {
                "Name" : "jppfs-cor:MinorityInterests",
                "Label" : "少数株主持分",
                "Order" : 3,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              }, {
                "Name" : "jppfs-cor:NetAssets",
                "Label" : "純資産合計",
                "Order" : 4,
                "Kind" : "Concept",
                "Depth" : 5,
                "IsNillable" : true,
                "IsAbstract" : false,
                "PeriodType" : "instant",
                "Balance" : "credit",
                "SubstitutionGroup" : "xbrli:item",
                "DataType" : "xbrli:monetaryItemType",
                "BaseType" : "xbrli:monetary",
                "ClosestSchemaBuiltinType" : "xs:decimal",
                "IsTextBlock" : false
              } ]
            }, {
              "Name" : "jppfs-cor:LiabilitiesAndNetAssets",
              "Label" : "負債純資産合計",
              "Order" : 4,
              "Kind" : "Concept",
              "Depth" : 4,
              "IsNillable" : true,
              "IsAbstract" : false,
              "PeriodType" : "instant",
              "Balance" : "credit",
              "SubstitutionGroup" : "xbrli:item",
              "DataType" : "xbrli:monetaryItemType",
              "BaseType" : "xbrli:monetary",
              "ClosestSchemaBuiltinType" : "xs:decimal",
              "IsTextBlock" : false
            } ]
          } ]
        } ]
      } ]
    } ]


Update facts.jq

Update facts.jq

import module namespace response = "http://www.28msec.com/modules/http-response";
import module namespace test = "http://apps.28.io/test";

declare %an:nondeterministic function local:test-facttable($expected as integer, $params as object) as item
{
    let $request := test:invoke("facts", $params)
    let $actual as integer := count($request[2].FactTable[])
    let $status as integer := $request[1]
    return test:assert-eq($expected, $actual, $status)
};

declare %an:nondeterministic function local:test-empty($params as object) as item
{
    let $res as object := test:invoke-raw("facts", $params)
    return if($res.status eq 200 and $res.headers."Content-Length" eq "0") then true else {
        unexpectedResponse: $res
    }
};

declare %an:sequential function local:check($o as object) as object
{
    if (not(every $k in (keys($o) ! $o.$$) satisfies ($k instance of boolean and $k)))
    then {
            response:status-code(500);
            $o
    } else
            $o
};

declare %an:nondeterministic function local:test-labels() as item
{
    let $params := {
        concept: [ "fac:Assets", "us-gaap:CashAndCashEquivalentsAtCarryingValue" ],
        report: "FundamentalAccountingConcepts",
        format: "csv",
        ticker: "ko",
        fiscalYear: 2013,
        fiscalPeriod: "Q3",
        labels: true
    }
    let $res as object := test:invoke-raw("facts", $params)
    let $actual := $res.body.content
    let $expectedLines := (
        "Accession Number,Concept,Entity,Period,Fiscal Period,Fiscal Year,Accepted,Legal Entity,Unit,Value,Decimals",
        "0000021344-13-000050,\"Cash and Cash Equivalents, at Carrying Value\",COCA COLA CO,2013-09-27,Q3,2013,20131024121047,Default Legal Entity,USD,11118000000,-6",
        "0000021344-13-000050,Assets,COCA COLA CO,2013-09-27,Q3,2013,20131024121047,Default Legal Entity,USD,89432000000,-6"
    )
    return if($res.status eq 200 and (every $line in $expectedLines satisfies contains($actual,$line))) then true else {
        unexpectedResponse: $res
    }
};

local:check({
    cocacola-fy-ytd4: local:test-facttable(468, {
        ticker:"ko",
        fiscalPeriod: [ "FY", "QTD4", "YTD4" ]
    }),
    cocacola-fy: local:test-facttable(163, {
        ticker:"ko"
    }),
    cocacolaCSVLabels: local:test-labels(),
    tickerconcept: local:test-facttable(1, {
        ticker:"ko",
        concept:"us-gaap:Assets"
    }),
    tickerfyfprole: local:test-facttable(1, {
        ticker:"ko",
        fiscalYear:"2012",
        fiscalPeriod:"Q1",
        concept:"us-gaap:Assets"
    }),
    tagconcept: local:test-facttable(30, {
        tag:"DOW30",
        concept:"us-gaap:Assets"
    }),
    tagfyfprole: local:test-facttable(30, {
        tag:"DOW30",
        fiscalYear:"2012",
        fiscalPeriod:"Q1",
        concept:"us-gaap:Assets"
    }),
    testNoEntity4Sic: local:test-empty({
        concept:"fac:Assets",
        map:"FundamentalAccountingConcepts",
        format:"csv",
        sic:"5052",
        fiscalYear:"2010",
        fiscalPeriod:"Q3"
    })
})

import module namespace response = "http://www.28msec.com/modules/http-response";
import module namespace test = "http://apps.28.io/test";

declare %an:nondeterministic function local:test-facttable($expected as integer, $params as object) as item
{
    let $request := test:invoke("facts", $params)
    let $actual as integer := count($request[2].FactTable[])
    let $status as integer := $request[1]
    return test:assert-eq($expected, $actual, $status)
};

declare %an:nondeterministic function local:test-empty($params as object) as item
{
    let $res as object := test:invoke-raw("facts", $params)
    return if($res.status eq 200 and $res.headers."Content-Length" eq "0") then true else {
        unexpectedResponse: $res
    }
};

declare %an:sequential function local:check($o as object) as object
{
    if (not(every $k in (keys($o) ! $o.$$) satisfies ($k instance of boolean and $k)))
    then {
            response:status-code(500);
            $o
    } else
            $o
};

declare %an:nondeterministic function local:test-labels() as item
{
    let $params := {
        concept: [ "fac:Assets", "us-gaap:CashAndCashEquivalentsAtCarryingValue" ],
        report: "FundamentalAccountingConcepts",
        format: "csv",
        ticker: "ko",
        fiscalYear: 2013,
        fiscalPeriod: "Q3",
        labels: true
    }
    let $res as object := test:invoke-raw("facts", $params)
    let $actual := $res.body.content
    let $expectedLines := (
        "Accession Number,Concept,Entity,Period,Fiscal Period,Fiscal Year,Accepted,Legal Entity,Unit,Value,Decimals",
        "0000021344-13-000050,\"Cash and Cash Equivalents, at Carrying Value\",COCA COLA CO,2013-09-27,Q3,2013,20131024121047,Default Legal Entity,USD,11118000000,-6",
        "0000021344-13-000050,Assets,COCA COLA CO,2013-09-27,Q3,2013,20131024121047,Default Legal Entity,USD,89432000000,-6"
    )
    return if($res.status eq 200 and (every $line in $expectedLines satisfies contains($actual,$line))) then true else {
        unexpectedResponse: $res
    }
};

local:check({
    cocacola-fy-ytd4: local:test-facttable(468, {
        ticker:"ko",
        fiscalPeriod: [ "FY", "YTD4" ]
    }),
    cocacola-fy: local:test-facttable(163, {
        ticker:"ko"
    }),
    cocacolaCSVLabels: local:test-labels(),
    tickerconcept: local:test-facttable(1, {
        ticker:"ko",
        concept:"us-gaap:Assets"
    }),
    tickerfyfprole: local:test-facttable(1, {
        ticker:"ko",
        fiscalYear:"2012",
        fiscalPeriod:"Q1",
        concept:"us-gaap:Assets"
    }),
    tagconcept: local:test-facttable(30, {
        tag:"DOW30",
        concept:"us-gaap:Assets"
    }),
    tagfyfprole: local:test-facttable(30, {
        tag:"DOW30",
        fiscalYear:"2012",
        fiscalPeriod:"Q1",
        concept:"us-gaap:Assets"
    }),
    testNoEntity4Sic: local:test-empty({
        concept:"fac:Assets",
        map:"FundamentalAccountingConcepts",
        format:"csv",
        sic:"5052",
        fiscalYear:"2010",
        fiscalPeriod:"Q3"
    })
})